CSS Sprite "精靈圖"


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屬性的用法,使用雪碧圖之前,我們需要知道雪碧圖中各個圖標的位置。

從上面的圖片不難看出雪碧圖中各個小圖標(icon)在整張雪碧圖的起始位置,例如第一個圖標(裙子)在雪碧圖的起始位置為 x:0,y:0,第二個圖標(鞋子)在雪碧圖的起始位置為 x:0,y:50px,第三個圖標(足球)在雪碧圖的起始位置為x:0,y:100px,依次類推可以得出各個圖片相對於雪碧圖的起始位置。

 

以上面的雪碧圖為例(實際雪碧圖中各個小圖片的起始位置和上面的展示圖不同)用一個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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM