精灵技术是用来整理零星图片,把所有的图片整合到一张大图片,这样可以避免每一次图片都向服务器提交一次申请,可以极大程度上提高加载的速度。
一、精灵技术是什么
CSS Sprites:图片处理,网页优化技术,前端优化技术的一种方式,减少请求服务器的次数,降低网络延迟,提高页面加载速度。使用时,在大图中通过定位(x,y坐标)的技术访问小图。
其实这是一种加速技术
一般情况使用Sprites的都是一些背景类的图片,如果说是要插入的主图,那么还是建议老老实实插入并调取图片。
二、面试常见问法
1. CSS Sprite是什么
CSS sprites在国内很多人叫css精灵,是一种网页图片应用处理方式。它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,减少对服务器的请求次数,提高访问速度。
2. 谈谈这个技术的优缺点
2.1 优点
(1)利用CSS Sprites能很好地减少了网页的http请求,从而大大的提高了页面的性能,这也是CSS Sprite的优点,也是其被广泛传播和应用的主要原因。
(2)解决了网页设计师在图片命名上的困扰。只需对一张集合的图片上命名就可以了,不需要对每一个小元素命名,从而提高了网页的制作效率。
(3)换风格方便。只需要在一张或少张图片上修改图片的颜色或样式,整个网页的风格就可以改变。维护起来也很方便。
(4)减少鼠标滑过的一些bug。IE6不会主动预加载鼠标滑过即a:hover中的背景图片,所以,如果使用多张图片,鼠标滑过会出现闪白的现象。使用CSS雪碧,由于一张图片即可,所以不会出现这种现象。
2.2 缺点
(1)在图片合并的时候,你要把多张图片有序的合理的合并成一张图片,还要留好足够的空间,防止板块内显示不必要的背景。这些还好,最痛苦的是在宽屏,高分辨率的屏幕下的自适应页面,你的图片如果不够宽,很容易将背景断裂。
(2)CSS Sprites在开发的时候比较麻烦,你要通过photoshop或其他工具测量计算每一个背景单元的精确位是针线活,没什么难度,但是很繁琐。
(3)CSS Sprites在维护的时候比较麻烦,如果页面背景有少许改动,一般就要改这张合并的图片,无需改的好不要动,这样避免改动更多的css,如果在原来的地方放不下,又只能(最好)往下加图片,这样图片的字加了,还要改动css。
三、技术实现
1. 初始图
2.源代码
<!DOCTYPE