学习随笔——CSS雪碧图——2020.11.11
(一)多个小图标是使用img还是使用背景呢?
- 背景图片上可以显示文字,表格等内容
- img插入图片属于网页的结构,而背景图属于网页的表现,是修饰网页目的的
- img是通过src引入到当前文件的,背景是通过css的href引入到当前文件的
- 当浏览器解析到src元素指向到的图片文件时,串行下载,就会暂停后续其他资源的下载和处理,直到将该图片文件加载显示完毕
- href是会并行下载css资源,不会停止对当前HTML文档的处理
- 网页制作中,能使用背景的地方就尽量少使用img
(二)CSS精灵(CSS雪碧图)概念:
- CSS Sprites,国内很多人叫CSS精灵或CSS雪碧图,是一种网页图片应用处理方式
- 通过图片整合技术,将一个页面涉及到所有零星图片都包含到一张大图中去,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来,而是一次网络访问将整合到一起的所有小图标都获取到
- CSS Sprites把网页中这些图片整合到一张图片文件后,用的时候如何调用呢?其原理是利用CSS的background-image background-repeat background-position的组合进行背景定位,background-position可以用数字精确的定位出背景图片的位置
(三)CSS Sprites优缺点
1.优点
- 利用CSS Sprites通过整合图片,能很好地减少对服务器的请求次数,从而加快页面加载速度,这也是CSS Sprites最大的优点,也是其被广泛传播和应用的主要原因
加速的关键,不是降低质量,而是减少个数
传统切图讲究精细,图片规格越小越好,质量越小越好,其实规格大小无所谓,计算机统一都按照byte计算
客服端每显示一张图片都会向服务器发送请求
图片越多请求次数越多,造成延迟的可能性也就越大 - CSS Sprites能减少图片的字节,多张图片合并成1张图片的字节总是小于原始的多张图片的字节总和
- 解决了网页设计师在图片命名上的困扰,只需要对一张集合的图片上命名就可以了,不需要对每一个小元素进行命名,从而提高了网页的制作效率
- 另外维护起来也更加方便
- CSS Sprites非常值得学习和应用,特别是网页有一堆icon(图标)时
2.缺点
- 在图片合并的时候,你要把多张图片有序的合理的合并成一张图片,还要留好足够的空间,防止板块内出现不必要的背景
- 最痛苦的是在宽屏,高分辨率的屏幕下的自适应网页,你的图片如果不够宽,很容易出现背景断裂
- CSS Sprites在开发的时候比较麻烦,你要通过photoshop或者其他工具测量计算每一个背景单元精确位置
- 这是针线活,没有什么难度,但是很繁琐
- 可以使用类似CSS Sprites样式生成工具,虽然还有一些使用上的不灵活,但是比photoshop测量来的方便多了,而且样式直接生成,复制即可
(四)CSS Sprites的实现步骤
- 首先将小图片整合到一张打的图片上
- 然后根据具体图标在大图上的位置,给 背景定位 ————background-position:-8px -95px;