天天看點

在ASP.NET中自動合并小圖檔并使用CSS Sprite顯示出來

前幾天MS的ASP.NET小組推出了一個小元件:Sprite and Image Optimization Framework,用于生成Sprite CSS,及将小的圖檔生成一副大圖。

8189E6B8-FBE4-4F01-8F9F-5687C0EA9F59

下載下傳後工程中有一個類庫,一個ASP.NET WebForm示例以及一個ASP.NET MVC示例。

下面我們就看看ASP.NET MVC的示例

在ASP.NET中自動合并小圖檔并使用CSS Sprite顯示出來

圖中所标記的圖檔都是來源于一個整張的圖檔

在ASP.NET中自動合并小圖檔并使用CSS Sprite顯示出來
在ASP.NET中自動合并小圖檔并使用CSS Sprite顯示出來

而這個整張圖檔則是由Sprite and Image Optimization Framework自動以幾個小圖檔合并并生成類似下面的CSS

我們下面看看我們怎麼在程式中使用這個工具吧

在其中建立子目錄每一個子目錄中的圖檔檔案将會自動合并成一個大檔案,并且生成CSS

在ASP.NET中自動合并小圖檔并使用CSS Sprite顯示出來

圖中

框中的檔案為小的圖檔檔案

sprite0.png為自動生成後的大圖檔、highCompat.css/lowCompat.css為自動生成的CSS檔案

注:這兩個CSS檔案暫沒有不同,但未來lowCompat.css可能隻支援IE7-9、FF的主流浏覽器,highCompat将支援其它

settings.xml為配置檔案:

其中

FileFormat為大圖檔類型

Based64Encoding為圖檔位址是否使用Base64編碼,如果使用則生成的CSS可能如下:

Quality為生成圖檔品質

BackgroundColor為背景色,預設透明

MaxSize為最大圖檔大小

這個其中是靠添加Modules來完成的,也就是首次通路頁面時就會自動生成大圖檔以及CSS

在System.Web節點上添加

或IIS7以上在System.WebServer節點上添加

都可以達到效果

這個分兩步走

第一,引用生成的CSS

指定到相應的檔案夾就OK了

最終會根據通路者的浏覽器,生成

或使用highCompat.css的link标簽

第二,如何使用某生圖檔

如果要用img标簽的話

類似這樣去用就可以了,會生成類似下面的标簽

如果要直接使用CSS去引用,則可以使用指定的Class來規定Sprite的背景圖檔

則會在此标簽的背景上顯示大圖檔,并自動設定到要顯示小圖檔的位移。

categories_windowsLogo-png

則表示要顯示~/APP_Sprites/categories/windowsLogo.png

附原圖一張

在ASP.NET中自動合并小圖檔并使用CSS Sprite顯示出來