详解什么是css sprites

CSS Sprites,是一种网页图片应用处理方式:将一个页面涉及到的零星图片都包含到一张大图中去。这样一来,当访问该页面时,客户端只需要向服务器请求少量的图片,图片越多请求次数越少,造成延迟的可能性也就越小,能有效减轻服务器的压力。

CSS Sprites其实就是把网页中一些背景图片整合到一张图片文件中,再利用CSS的“background-image”、“background-position”的组合进行背景定位,用数字精确地定位出背景图片的位置。(如果还没有完全掌握CSS背景定位,请参阅《CSS背景 background属性全解析》。)

利用CSS Sprites能减少网页的http请求,从而大大减轻了服务器的负担,这是CSS Sprites最大的优点,也是其被广泛传播和应用的主要原因。由于3张图片合并成1张图片的字节总是小于这3张图片的字节总和,CSS Sprites也减少了图片的字节,对带宽的要求也相应的减少。而只对一张图片修改、命名也比对每个小元素图片进行修改、命名方便很多,从而提高了制作和维护效率。

下面通过一个很简单的实例让你更好得理解什么是css sprites,以及我们要怎样运用它:

以最常见的为上、下页链接添加按钮样式为例。通常我们会把按钮图片保存成两个单独的文件,再通过左、右两个链接的background属性调用它们。而css sprites就是把这两张小图整合到一张大图上,通过background-position属性来控制左、右两个链接的背景显示。

通过以下代码就实现了我们想要的效果:(查看演示页面)

/* css */
a {background:url(sprites.gif) no-repeat;}
a.left {float:left; padding-left:20px; background-position:0 3px;}
a.right {float:right; padding-right:20px; background-position:right -23px;}

/* html */
<a class="left" href="http://www.54173.cn/blog/?p=103" target="_blank">[转]10个进阶摄影构图技巧</a>
<a class="right" href="http://www.54173.cn/blog/?p=122" target="_blank">54173原创:轻松制作cs1.6个性喷图</a>

相信你现在对css sprites以及它的原理、用法都有了初步的认识吧。制作css sprites图片是个细活,尤其是有非常多的小图需要整合的页面,工作量会比较大。我们在做之前就要仔细考虑它们的布局问题,这样才能少走弯路。比如上面的例子中两个蓝色的按钮需要在网页中的同一排显示,在做图片的时候我们就不能把它们放在同一水平线上,以免它出现在不该出现的位置扰乱页面。

在调整一个小图片的位置时,要考虑到它的左、右多少像素范围内不能出现别的图片,还有它所在的行,上、下多少像素范围是安全距离?做图时要多测量、多测试、不怕繁琐,这样才能做出体积小巧、布局合理的优质图片。精工出细活!

小贴士:在页面小图很多,需要做成多个sprites图片时,可以按颜色分类,尽量将相同、相近颜色的小图整合在一张大图上,这样可以有效减小合成后图片的体积。

欢迎光临54173BLOG交流更多css、html的相关知识。

作者:mming

54173BLOG原创,转载请保留本文链接:http://www.54173.cn/blog/?p=129

阅读更多
个人分类: html
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭