例如淘宝的css sprites css
URL是http://a.tbcdn.cn/p/fp/2011a/assets/sprites.gif html
这样作有什么好处呢? 浏览器
显而易见,浏览器在载入每一张图片的时候都会发起一个HTTP请求。 服务器
若是使用CSS Sprites技术,将全部的图片合成一张图片,那么,这样多个HTTP请求会被合成一个HTTP请求。 工具
这样就既能大大下降后台服务器的开销,又能加快网页载入速度。 性能
CSS Sprites原理: 网站
CSS Sprites是经过背景图片外加背景图片定位来实现的。如今作一个简单的实验: cdn
咱们以淘宝的图片为例,在html里面插入一个div,宽高为200px*100px, htm
a.将图片的偏移设置为 图片
图像显示效果以下:
b.将图片的偏移设置为
图像的显示效果以下:
这样,一个简单的CSS Sprites就实现了。
CSS Sprites优势
CSS Sprites为何忽然跑火,跟可以提高网站性能有关。显而易见,这是它的巨大优势之一。
1.利用CSS Sprites能很好地减小了网页的http请求,从而大大的提升了页面的性能,这是CSS Sprites最大的优势,也是其被普遍传播和应用的主要缘由;
2.我的认为CSS Sprites能减小图片的字节,我曾经比较过屡次3张图片合并成1张图片的字节老是小于这3张图片的字节总和。
CSS Sprites缺点
诚然CSS Sprites是如此的强大,可是也存在一些不可忽视的缺点。
1.在图片合并的时候,你要把多张图片有序的合理的合并成一张图片,还要留好只够的空间,防止板块内不会出现没必要要的背景,不然可能会出现出现干扰图片的状况;这些还好,作痛苦的是在宽屏,高分辨率的屏幕下的自适应页面,你的图片若是不够宽,很容易出现背景断裂;
2.CSS Sprites在开发的时候比较麻烦,你要经过photoshop或其余工具测量计算每个背景单元的精确位置,这是针线活,没什么难度,可是很繁琐;不过网上已经有高手开发出“CSS Sprites 样式生成工具”,你们能够尝试一下。
3.CSS Sprites在维护的时候比较麻烦,sprites是通常双刃剑,若是页面背景有少量改动,通常就要改这张合并的图片,无需改的地方最好不要动,这样避免改动更多的css,若是在原来的地方放不下,有只能(最好)往下加图片,这样图片的字节就增长了,由于每次的图片改动都得往这个图片删除或添加内容,显得稍微繁琐,并且从新算图片的位置(尤为是这种上千px的图)也是一件颇为不爽的事情。固然,在性能的口号下,这些都是能够克服的。
4.因为图片的位置须要固定为某个绝对数值,这就失去了诸如center之类的灵活性。