CSS Sprite筆記

來源:互聯網
上載者:User

標籤:get   關閉   請求   總結   one   瀏覽器   線上   彩妝   如何   

 

1. 什麼是CSS Sprite

將一些碎小的圖片拼接為一張大點的圖片來使用,目的是為了減少瀏覽器的http請求次數以提高網頁的載入速度。
每次請求圖片都需要跟伺服器建立一次串連,並且瀏覽器的最大並發請求數是有限制的。使用雪碧圖並不能減少傳送的資料的總量,但可以通過節省掉一部分建立、關閉串連的時間來加快網頁的載入速度。

2. 如何使用 2.1 怎麼得到雪碧圖?

  ※ 直接手動拼接,只要可以將需要用到的小圖片拼在一張圖片上即可,當然,拼接應該盡量遵循的原則:

        盡量讓這張圖片以後可維護;

        在保證可維護性的前提下,盡量少的在圖片上留大面積空白;

  ※ 使用產生工具,比如cssgaga等,參見http://www.99css.com/cssgaga/

2.2 怎麼使用雪碧圖?

拿到雪碧圖之後,如果是使用手動拼接方式的話,就使用ps等工具量一下具體的座標,如果是使用產生工具自動產生的話,產生結果中應該會帶上之前每張小圖片的座標的。

使用雪碧圖的套路就是先使用background-image:url(“foo.png”)來設定元素的背景圖片,然後使用background-position:x-shift y-shift;來滑動圖片。

一個簡單的使用雪碧圖的例子:

<!DOCTYPE html><html>    <head>        <meta charset="UTF-8">        <title>CSS Sprite Demo</title>        <style type="text/css">            /*側欄容器div*/            .nav-bar{                width:250px;            }            /*側欄列表樣式*/            .nav-list li{                list-style:none;                padding:10px;                border:1px solid #DDD;            }            /*sprite表徵圖的樣式*/            .nav-list li i{                background-image:url("imgs/sidebar.png");                display:inline-block;                width:30px;                height:24px;                float:left;            }            /*鞋包配飾*/            .nav-list li:nth-child(2) i{                background-position:0px -24px;            }            /*運動戶外*/            .nav-list li:nth-child(3) i{                background-position:0px -48px;            }            /*珠寶手錶*/            .nav-list li:nth-child(4) i{                background-position:0px -72px;            }            /*手機數位*/            .nav-list li:nth-child(5) i{                background-position:0px -96px;            }            /*家電辦公*/            .nav-list li:nth-child(6) i{                background-position:0px -120px;            }                /*護膚彩妝*/            .nav-list li:nth-child(7) i{                background-position:0px -144px;            }                                /*母嬰用品*/                    .nav-list li:nth-child(8) i{                background-position:0px -168px;            }                                                            </style>    </head>    <body>                <div class="nav-bar">            <ul class="nav-list">                <li><i></i>服裝內衣</li>                <li><i></i>鞋包配飾</li>                <li><i></i>運動戶外</li>                <li><i></i>珠寶手錶</li>                <li><i></i>手機數位</li>                <li><i></i>家電辦公</li>                <li><i></i>護膚彩妝</li>                <li><i></i>母嬰用品</li>            </ul>        </div>            </body></html>

雪碧圖:

 

3.總結

3.1 雪碧圖的原理?

以左上方的頂點作為定位的原點。

x位移為負值的話就向右移動。

y位移為負值的話就向下移動。

原圖並不會被裁切,它還是那麼大,就在那兒,只是超出的部分隱藏掉了,相當於是滑動圖片。

 

3.2  涉及到的屬性

background-image:url("imgs/sidebar.png");

background-position : x-shift y-shift;

background-position-x : x-shift;

background-position-y : y-shift;

 

3.3 什麼時候適合使用雪碧圖?

圖是靜態,不隨著使用者資訊的變化而變化。

小圖片,容量比較小,主要是為了減少http請求次數。

 

 

 

相關產生雪碧圖工具:

CssGaga

http://www.99css.com/cssgaga/

 

線上產生雪碧圖:

http://alloyteam.github.io/gopng/

http://csssprites.com/

 

參考資料:

1. 慕課網視頻教程 http://www.imooc.com/learn/93

2. StackOverFlow的解釋: http://stackoverflow.com/questions/3889661/whats-this-negative-value-in-this-css-property

CSS Sprite筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.