CSS Sprites(截取部分圖片)是怎么工作的


CSS Sprites的最初的想法是可以通過<img>標簽和JAVASCRIPT中的onmouseover和onmouseout的事件使用CSS來切換一張大圖片中的坐標位置顯示到DIV上來實現圖片的變化。
主要的功能是通過背景圖片的定位來顯示圖片的局部,當很多小圖片放在一張圖片上然后加載,就可以減少圖片加載時服務器的開銷
如亞馬遜網站的各類圖標:
css-sprites-技術
只需一張圖片即可完成加載所有的按鈕和圖標。
下面就來介紹一下CSS Sprites的工作原理
Figure 1
我們以上圖來作為背景圖片
初始坐標x=0,y=0的圖片顯示如下圖
Figure 2
當變換了坐標值,則圖片就沿左邊向上或左方移動,如坐標為x=0,y=-48時,圖片位置變為如下圖
Figure 3
 
例子:
      在需要用到圖片的時候,現階段是通過CSS屬性background-image組合background-repeat, background-position等來實現。通過調整background-position的數值,背景圖片就能以不同的面貌出現在你眼前。
我們使用下圖sprite.png來作為例子:

新建兩個DIV
[html]  view plain copy print ?
  1. <div class="max">最大化</div>  
  2. <div class="min">最小化</div>  
配置CSS樣式:
[html]  view plain copy print ?
  1. .min, .max {  
  2.   width:16px;  
  3.   height:16px;  
  4.   background-image:url(sprite.png);  
  5.   background-repeat: no-repeat; /*我們並不想讓它平鋪*/  
  6.   text-indent:-999em; /*隱藏文本的一種方法*/  
  7. }  
還沒有指定background-position時,默認為 0 0,可以看下圖片,處於的位置正是灰塊。接下來我們要找到代表最大化的加號和代表最小化的減號的位置找出來。經過測量,最大化按鈕位於Y軸的350px處,最小化按鈕位於Y軸400px處。需要向上移動圖片,得到代碼如下:
[html]  view plain copy print ?
  1. .max { background-position: 0 -350px;}  
  2. .min { background-position: 0 -400px;}  
這樣就完成了圖片的定位顯示,如果需要配置動態變更圖片,只需在JS方法中變更background-position就可以了。


免責聲明!

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



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