SmartSprites 智能批量合併 CSS 雪碧圖

作前端的稍微有點經驗的都知道 能夠經過合併小圖片 來減小請求數,

css

最先可能都是經過 fw、ps 等工具來手動合併,html

這種方式的缺點就不吐槽了,效率低,可維護性差 等等 ....

前端

一些很厲害的人,每每會開發出很厲害的程序,來解決重複性的勞動,java

1.  https://github.com/iazrael/ispritergit

2.  http://www.uini.net/?p=870github

3.  http://csssprites.org/less

4.  more ...

grunt

這些工具,我都稍微瞭解過,但最後以爲比較好使(適合本身)的是 SmartSprites(http://csssprites.org/)工具

我的以爲它的好處:ui

1. 語法簡易,控制靈活;

1
/** sprite: icon-14; sprite-image: url('../images/components/icon-14.png'); */

 首先定義 一個合併圖片,定義內容包含,合併標識,合併圖片生成地址,還有更多參數,好比:縱向仍是橫向合併,圖片名字是否自動生成等 ....

1
2
3
4
5
6
7
8
.icon-add -14
{
     background-image : url ( '@{bg-components-srpite-url}icon-add-14.png' ); /** sprite-ref: icon-14;*/
}
.icon-batch-delete -14
{
     background-image : url ( '@{bg-components-srpite-url}icon-batch-delete-14.png' ); /** sprite-ref: icon-14;*/
}

   使用時只須要在正常 gackgrund-image 後面加上 特定的註釋語法,sprite-ref 指向開始的 sprite 定義,標識那幾個小圖合併到同一張圖上,

   這個也有更多的參數,好比:position 方式,margin 值 等等 .....

 

   這樣看起來是否是很簡單明瞭,徹底不破壞你原有的寫法,只是增長註釋而已!

    

2. 基於 cmd 命令,任何程序均可以調用 

1
smartsprites.cmd --root-dir-path xxx  --output-dir-path xxx --css-file-suffix ""

  指定一個 css 文件目錄,指定一個輸出目錄,指定一個 css 文件生成後綴

 

 固然這貨也是有缺點的:

1. 基於 java ,因此必須須要 jre ;

2. 生成的 css 文件不能直接覆蓋還有 css 文件,因此須要兩個目錄,一個 css 源目錄,一個 css 輸出目錄;

3. 它是居於 css 註釋語法,好比使用 Less 編譯後 就會破壞其 註釋語法, 這個我已經有處理 grunt-contrib-less-smartsprite  

 更多文檔請移步 http://csssprites.org/

相關文章
相關標籤/搜索