圖像拼合就是單個圖像的集合。php
有許多圖像的網頁可能須要很長的時間來加載和生成多個服務器的請求。css
使用圖像拼合會下降服務器的請求數量,並節省帶寬。html
與其使用三個獨立的圖像,不如咱們使用這種單個圖像("img_navsprites.gif"):服務器
有了CSS,咱們能夠只顯示咱們須要的圖像的一部分。url
在下面的例子CSS指定顯示 "img_navsprites.gif" 的圖像的一部分:spa
img.home { width:46px; height:44px; background:url(img_navsprites.gif) 0 0; }
實例解析:code
<img class="home" src="img_trans.gif" /> -由於不能爲空,src屬性只定義了一個小的透明圖像。顯示的圖像將是咱們在CSS中指定的背景圖像orm
寬度:46px;高度:44px; - 定義咱們使用的那部分圖像htm
background:url(img_navsprites.gif) 0 0; - 定義背景圖像和它的位置(左0px,頂部0px)get
這是使用圖像拼合最簡單的方法,如今咱們使用連接和懸停效果。
咱們想使用拼合圖像 ("img_navsprites.gif"),以建立一個導航列表。
咱們將使用一個HTML列表,由於它能夠連接,同時還支持背景圖像:
#navlist{position:relative;} #navlist li{margin:0;padding:0;list-style:none;position:absolute;top:0;} #navlist li, #navlist a{height:44px;display:block;} #home{left:0px;width:46px;} #home{background:url('img_navsprites.gif') 0 0;} #prev{left:63px;width:43px;} #prev{background:url('img_navsprites.gif') -47px 0;} #next{left:129px;width:43px;} #next{background:url('img_navsprites.gif') -91px 0;}
實例解析:
#navlist{position:relative;} - 位置設置相對定位,讓裏面的絕對定位
#navlist li{margin:0;padding:0;list-style:none;position:absolute;top:0;} - margin和padding設置爲0,列表樣式被刪除,全部列表項是絕對定位
#navlist li, #navlist a{height:44px;display:block;} - 全部圖像的高度是44px
如今開始每一個具體部分的定位和樣式:
#home{left:0px;width:46px;} - 定位到最左邊的方式,以及圖像的寬度是46px
#home{background:url(img_navsprites.gif) 0 0;} - 定義背景圖像和它的位置(左0px,頂部0px)
#prev{left:63px;width:43px;} - 右側定位63px(#home寬46px+項目之間的一些多餘的空間),寬度爲43px。
#prev{background:url('img_navsprites.gif') -47px 0;} - 定義背景圖像右側47px(#home寬46px+分隔線的1px)
#next{left:129px;width:43px;}- 右邊定位129px(#prev 63px + #prev寬是43px + 剩餘的空間), 寬度是43px.
#next{background:url('img_navsprites.gif') no-repeat -91px 0;} - 定義背景圖像右邊91px(#home 46px+1px的分割線+#prev寬43px+1px的分隔線)
如今,咱們但願咱們的導航列表中添加一個懸停效果。
咱們的新圖像 ("img_navsprites_hover.gif") 包含三個導航圖像和三幅圖像:
由於這是一個單一的圖像,而不是6個單獨的圖像文件,當用戶停留在圖像上不會有延遲加載。
咱們添加懸停效果只添加三行代碼:
#home a:hover{background: url('img_navsprites_hover.gif') 0 -45px;} #prev a:hover{background: url('img_navsprites_hover.gif') -47px -45px;} #next a:hover{background: url('img_navsprites_hover.gif') -91px -45px;}
實例解析:
因爲該列表項包含一個連接,咱們能夠使用:hover僞類
#home a:hover{background: transparent url(img_navsprites_hover.gif) 0 -45px;} - 對於全部三個懸停圖像,咱們指定相同的背景位置,只是每一個再向下45px