CSS Sprite
CSS Sprites叫 CSS精靈或者雪碧圖,是一種網頁圖片應用處理方式。
CSS Sprites其實就是把網頁中一些背景圖片整合到一張圖片文件中。
再利用CSS的"background-image","background-repeat","background-position"的組合進行背景定位,background-position可以用數字精確的定位出背景圖片的位置。
為什么建議使用CSS Sprite
在網頁訪問中,客戶端每需要訪問一張圖片都會向服務器發送請求,所以,訪問的圖片數量越多,請求次數也就越多,造成延遲的可能性也就越大。
所以,CSS Sprites技術加速的關鍵,並不是降低質量,而是減少個數,當然隨之而來的增加內存消耗,CSS Sprites圖片繁瑣的合成等缺點在網站性能的提升前,也就不足為道了。
CSS Sprites 的優點:
- 減少圖片的字節
- 減少了網頁的http請求,從而大大的提高了頁面的性能
- 減少命名難的問題
CSS Sprites 的缺點:
- 在圖片合並的時候,你要把多張圖片有序的合理的合並成一張圖片,還要留好足夠的空間,防止板塊內出現不必要的背景。
- 在寬屏,高分辨率的屏幕下的自適應頁面,圖片如果不夠寬,很容易出現背景斷裂。
- CSS Sprites在維護的時候比較麻煩,如果頁面背景有少許改動,一般就要改這張合並的圖片,無需改的地方最好不要動,這樣避免改動更多的CSS,如果在原來的地方放不下,又只能(最好)往下加圖片,這樣圖片的字節就增加了,還要改動CSS。
再說說background-position
只有真正的了解background-position的特性才能在需要的場景更好的運用它。
background-position 屬性設置背景圖像的起始位置。
這個屬性設置背景原圖像(由 background-image 定義)的位置,背景圖像如果要重復,將從這一點開始。
提示:
background-position屬性設置背景原圖像(由 background-image 定義)的位置,意味着使用這個屬性的前提是必須設置背景原圖像background-image。
了解了background-position屬性的用法,使用雪碧圖之前,我們需要知道雪碧圖中各個圖標的位置。
以上面的雪碧圖為例(實際雪碧圖中各個小圖片的起始位置和上面的展示圖不同)用一個Demo來闡述它的使用方法。
HTML
<div class="box">
<span class="icon1"></span>
<span class="icon2"></span>
<span class="icon3"></span>
<span class="icon4"></span>
</div>
CSS
<style>
.box {
width: 600px;
height:300px;
border: 3px solid #ccc;
background-color: #8064A2;
}
span {
display: inline-block;
width: 25px;
height: 25px;
border: 3px solid #ccc;
background-image: url(css/img/sidebar.png);
background-repeat: no-repeat;
margin: 5px;
}
.icon1 {
background-position: 0 0;
}
.icon2 {
background-position: -40px 0;
}
.icon3 {
background-position: 0 -25px;
}
.icon4 {
background-position: -40px -25px;
}
</style>
效果圖

合成CSS Sprite的工具
利用雪碧圖顯示icon的小demo https://evenyao.github.io/css-sprite-demo/
制作CSS Sprite工具詳解 http://www.cnblogs.com/wang4517/p/4476758.html
