睡蓮‧池水間

Guest
2012-May-23  
0 位會員和 9 位訪客在線上

文章 :: 語言集

提升網站效能的 CSS Sprites

睡蓮
 
池水間 
近來在為池水間進行網站優化,將XHTML和CSS代碼改良,其中CSS就首次使用了CSS Sprites技術,以提升網站效能。

什麼是CSS Sprites?就是將多個圖片匯集到一個大圖片上,然後在CSS裡將每個使用不同背景圖路徑全部劃一改為集成圖片路徑,並給每個背景圖定位。

例如下面的無序列表,每一個 li 標籤分別用五個不同背景圖:

<ul>
<li class="image1"> image1 背景 </li>
<li class="image2"> image2 背景 </li>
<li class="image3"> image3 背景 </li>
<li class="image4"> image4 背景 </li>
<li class="image5"> image5 背景 </li>
</ul>

在CSS裡給每個 li 設定不同背景圖片路徑:

.images1 {background: url(image1.png) no-repeat;}
.images2 {background: url(image2.png) no-repeat;}
.images3 {background: url(image3.png) no-repeat;}
.images4 {background: url(image4.png) no-repeat;}
.images5 {background: url(image5.png) no-repeat;}

上面就用了五個不同的路徑,如將五個圖片匯集到一個圖片,路徑就只要劃一用同一個便可以了。這樣一來當網頁載入圖片時只需一次載入集成圖片,然後依據先前背景圖的定位而顯示出不同背景圖。


圖片匯集



定位

當匯集到一個圖片之後,如何為每個 li 標籤分別指定 5to1_image.png 裡面的不同背景圖呢?

下圖的每一個紅框所示為每個 li 要用的背景:

在為每個不同背景圖定位之前,須先給每個 li 標籤指定寬和高也就是100 px * 30px,如此定位才會準確。

上面的image1 ,其灰色背景位處在 5to1_image.png 裡的最上面,也就是最容易定位的地方:

.images1 {background: url(5to1_image.png) no-repeat 0 0;}
上面代碼中紅色的0為x,藍色的0為y;x為水平位置,y為垂直位置。

由於背景圖定位的預設值皆為0的關係,上面的代碼可以省略成如下:

.images1 {background: url(5to1_image.png) no-repeat;}

好了,接下來給 image2 定位,其藍色背景位處在灰色的下面,見下圖:


將 image2 的藍背景向上提升一格( 30px )至紅框位置,而水平位置維持不變:

.images2 {background: url(5to1_image.png) no-repeat 0 -30px;}

接著將位處在image 2 下面的 image 3 ,向上提升兩格至紅框,兩格就是60px。其他的image 4 和 image 5 則餘類推:

.images3 {background: url(5to1_image.png) no-repeat 0 -60px;}
.images4 {background: url(5to1_image.png) no-repeat 0 -90px;}
.images5 {background: url(5to1_image.png) no-repeat 0 -120px;}

CSS Sprites 就是這樣用法,除了上面的多圖匯集成一圖之外,CSS Sprites亦可取代以往在photoshop繪製好設計圖後需作切圖的舊模式,利用CSS Sprites技術,便可不需切圖而直接使用了。

    «« 註釋在IE中造成文字溢出的研究 難以發現的 CSS 問題 »»    

引用

  • 文章地址: http://waterlily-lsl.com/modules/article/view.article.php/c2/170
  • 引用地址: http://waterlily-lsl.com/modules/article/trackback.php/170

評分

10
9
8
7
6
5
4
3
2
1


 

API: RSS | RDF | ATOM

回覆及設定

    關閉


 提升網站效能的 CSS Sprites
睡蓮

網主

註冊: 08年3月21日
來自: 池水間
回覆數: 464

發表日期: 09/8/14 16:51  更新日期: 09/8/14 16:51


在註明出處和原作者前提下,池水間是歡迎轉貼本文內容。但這個網站轉貼本文章內容竟稱原創,將有池水間字眼的第一行語句刪改,只保留後面的文章內容,連文章出處也沒有註明一下 → http://16610.blog.51cto.com/6610/191819 (截圖)

回覆

 

最 新 發 表 及 資 訊 區

此為池水間 banner ,需要安裝 Adobe Flash Player 才能觀看內容。

最新留言

最新留言:2012-Jan-6 11:13am
留言編號:76
留言者: wuji888
網主回覆:
總留言數: 71

前往萍踪留影

造訪統計

今天:71
昨天:362
本週:1905
本月:11921
總計:433158
平均:311

連結

Powered By XOOPS
Valid XHTML 1.1
Valid CSS 3
除另有註明外,本站內容均採用 Creative Commons 姓名標示-非商業性-相同方式分享 3.0 授權條款授權
登 入