CSS Sprite "精靈圖"

CSS Sprite

CSS Sprites叫 CSS精靈或者雪碧圖,是一種網頁圖片應用處理方式。javascript

CSS Sprites其實就是把網頁中一些背景圖片整合到一張圖片文件中。css

再利用CSS的"background-image","background-repeat","background-position"的組合進行背景定位,background-position能夠用數字精確的定位出背景圖片的位置。html

 

爲何建議使用CSS Sprite

在網頁訪問中,客戶端每須要訪問一張圖片都會向服務器發送請求,因此,訪問的圖片數量越多,請求次數也就越多,形成延遲的可能性也就越大。java

因此,CSS Sprites技術加速的關鍵,並非下降質量,而是減小個數,固然隨之而來的增長內存消耗,CSS Sprites圖片繁瑣的合成等缺點在網站性能的提高前,也就不足爲道了。git

 

CSS Sprites 的優勢:     

  • 減小圖片的字節
  • 減小了網頁的http請求,從而大大的提升了頁面的性能
  • 減小命名難的問題

CSS Sprites 的缺點:    

  • 在圖片合併的時候,你要把多張圖片有序的合理的合併成一張圖片,還要留好足夠的空間,防止板塊內出現沒必要要的背景。
  • 在寬屏,高分辨率的屏幕下的自適應頁面,圖片若是不夠寬,很容易出現背景斷裂。
  • CSS Sprites在維護的時候比較麻煩,若是頁面背景有少量改動,通常就要改這張合併的圖片,無需改的地方最好不要動,這樣避免改動更多的CSS,若是在原來的地方放不下,又只能(最好)往下加圖片,這樣圖片的字節就增長了,還要改動CSS。

再說說background-position

只有真正的瞭解background-position的特性才能在須要的場景更好的運用它。github

background-position 屬性設置背景圖像的起始位置。
這個屬性設置背景原圖像(由 background-image 定義)的位置,背景圖像若是要重複,將從這一點開始。
提示:
background-position屬性設置背景原圖像(由 background-image 定義)的位置,意味着使用這個屬性的前提是必須設置背景原圖像background-image。
服務器

瞭解了background-position屬性的用法,使用雪碧圖以前,咱們須要知道雪碧圖中各個圖標的位置。ide

從上面的圖片不難看出雪碧圖中各個小圖標(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

相關文章
相關標籤/搜索