什么是精灵图 CSS Sprite
CSS Sprites叫CSS精灵或者雪碧图,是一种网页图片应用处理方式。
所谓的精灵图就是将多个图片放置在一个大的图片上面。精灵图主要是用来当做背景图时使用,之所以要将多个图片放置在一个大的图片上面是因为很多时候我们的背景图是放置在服务器上面的,当我们需要使用到某一张图片的时候就会向服务器请求资源,如果图片是分离的那么用到一张的时候就要请求一次,这样服务器的压力会比较大,所以可以将多个图片整合到一个图片的上面,这样当请求资源的时候请求的次数就会变少很多,可以减轻服务器的压力。
为什么建议使用CSS Sprite
在网页访问中,客户端每需要访问一张图片都会向服务器发送请求,所以,访问的图片数量越多,请求次数也就越多,造成延迟的可能性也就越大。
所以,CSS Sprites技术加速的关键,并不是降低质量,而是减少个数,当然随之而来的增加内存消耗,CSS Sprites图片繁琐的合成等缺点在网站性能的提升前,也就不足为道了。
CSS Sprites 的优点:
减少图片的字节
减少了网页的http请求,从而大大的提高了页面的性能
减少命名难的问题
CSS Sprites 的缺点:
在图片合并的时候,你要把多张图片有序的合理的合并成一张图片,还要留好足够的空间,防止板块内出现不必要的背景。
在宽屏,高分辨率的屏幕下的自适应页面,图片如果不够宽,很容易出现背景断裂。
CSS Sprites在维护的时候比较麻烦,如果页面背景有少许改动,一般就要改这张合并的图片,无需改的地方最好不要动,这样避免改动更多的CSS,如果在原来的地方放不下,又只能(最好)往下加图片,这样图片的字节就增加了,还要改动CSS。
精灵图的使用
精灵图的使用主要是用到了定位的功能,利用CSS的"background-image","background-repeat","background-position"的组合进行背景定位,background-position可以用数字精确的定位出背景图片的位置。
从上面的图片不难看出雪碧图中各个小图标(icon)在整张雪碧图的起始位置,例如第一个图标(裙子)在雪碧图的起始位置为 x:0,y:0,第二个图标(鞋子)在雪碧图的起始位置为 x:0,y:50px,第三个图标(足球)在雪碧图的起始位置为x:0,y:100px,依次类推可以得出各个图片相对于雪碧图的起始位置。
参考文案:https://www.cnblogs.com/wang4517/p/4476758.html