当前位置: 首页 > 前端技术 > 正文

css sprite图像拼接技术

css图像拼接技术英文成为css sprite是一种比较流行的网页图片处理方式,即将所有零碎的网页背景图片整合到一起,这样做可以有效的减少http对图片的请求次数,而不需要加载多次加载零碎的背景图片,所以合理的利用好它可以有效的提高网页的加载速度。

它有其自身独特的优点,但是缺点就是拼接和测量零碎的图片是一项耗时的工作。当你把零碎的图片一块一块拼接好以后还得做的一项工作就是图片的测量,很多人都会选择使用Photoshop的测量工具进行精准的测量,但是这项工作还是比较耗时的。

下面向大家介绍一个方便实用的css图像拼接测量网站 spritecow 精灵牛,你只需将拼接好的图片上传到该网站,它就会根据图片的区块为你自动的测量非常的方便。

css sprite图像拼接技术

使用方法:举一个简单的例子,假设你有四个不同的浏览器图标,用css布局将它们四个图标并排在一起如下图所示:

css sprite图像拼接技术

通常情况下可能我们会将这四个图标单独切出来然后在四个li中附上四个不同的class类 对于html结构可能我们会这样写:

[html]

[/html]

然后根据四个不同的li载入不同的图标css结构:

  1. #browser{   
  2.     padding-top:20px;   
  3.            
  4. }   
  5. #browser ul {   
  6.     text-indent:-9999px;   
  7.     width:960px;   
  8.     margin:0 auto;     
  9. }   
  10. #browser ul li{   
  11.     float:left;   
  12.     display:block;   
  13.     width:142px;   
  14.     height:139px;   
  15.     margin-left:60px;   
  16.        
  17.        
  18. }   
  19. #browser ul li a {   
  20.     text-indent:-9999px;       
  21. }   
  22.   
  23. #browser ul li.safari {   
  24.   
  25.     backgroundurl(images/safari.png) no-repeat;   
  26. }   
  27.   
  28. #browser ul li.firefox {   
  29.   
  30.     backgroundurl(images/firefox.png) no-repeat;   
  31. }   
  32. #browser ul li.chrome {   
  33.   
  34.     backgroundurl(images/chrome.png) no-repeat;   
  35. }   
  36. #browser ul li.ie {   
  37.   
  38.     backgroundurl(images/ie.png) no-repeat;   
  39. }  

这样做浏览器为了加载图像,http就会发出四次请求。如果我们使用css sprite图像拼接技术就会减少三次请求从而大大的节省加载时间。

首先我们将四个图标用Photoshop拼接在一起,并且用魔棒工具将白色的背景删除,即背景必须是透明的因为待会介绍的spritecow是不识别有颜色的背景的

如下图所示

css sprite图像拼接技术

存储为png背景透明格式

css sprite图像拼接技术

打开spritecow 精灵牛 网站点击 open image按钮加载你刚才保存好的图片 brwoser.png 如图所示:

css sprite图像拼接技术

这时你就可以对每个图标进行点击,当你点击图标的时候精灵牛就会自动帮你测算出图标背景的水平坐标和纵坐标的距离以及图标的宽度与高度。

css sprite图像拼接技术

哈哈是不是很方便?这时你就可以直接将背景位置的测量值拷贝到css样式中了。以下是使用css sprite图像拼接的样式

  1. #browser{   
  2.     padding-top:20px;   
  3.            
  4. }   
  5. #browser ul {   
  6.     text-indent:-9999px;   
  7.     width:960px;   
  8.     margin:0 auto;     
  9. }   
  10. #browser ul li{   
  11.     float:left;   
  12.     display:block;   
  13.     width:142px;   
  14.     height:139px;   
  15.     margin-left:60px;   
  16.     background:url(images/browser.png) no-repeat;      
  17. }   
  18.   
  19. #browser ul li.safari {   
  20.     background-position0px –4px ;   
  21. }   
  22.   
  23. #browser ul li.firefox {   
  24.     background-position:-169px –4px ;   
  25.   
  26. }   
  27. #browser ul li.chrome {   
  28.     background-position:-342px –4px ;   
  29. }   
  30. #browser ul li.ie {   
  31.     background-position:-517px –4px ;   
  32.        
  33. }  

说明一下:background-position: 0px -4px no-repeat;  0px 为横坐标,即图标相距最左边的距离,-4px为纵坐,即标图标相距最上方的距离。

这个工具网站可以在很大程度上节省图片拼接所用的时间,当然大家的方法有很多我只是介绍css sprite拼接技术的其中一种简便的方法,如果大家有什么好的方法可以多多交流!

css sprite图像拼接技术:等您来吐槽!