02-css精灵图实现及原理
精灵图原理:
把网页中一些背景图片整合到一张图片文件中,再利用CSS的
"background-image","background-repeat","background-position"
的组合进行背景定位,background-position可以用数字精确地定位出背景图片的位置。
优点:
- 减少网页的http请求,从而加快了网页加载速度,提高用户体验。
- 减少图片的体积,因为每个图片都有一个头部信息,把多个图片放到一个图片里,就会共用同一个头信息,从而减少了字节数。
- 解决了网页设计师在图片命名上的困扰,只需对一张集合的图片上命名就可以了,不需要对每一个小元素进行命名。
- 更换风格方便,只需要在一张或少张图片上修改图片的颜色或样式,整个网页的风格就可以改变
缺点:
- 在宽屏,高分辨率的屏幕下的自适应页面,你的图片如果不够宽,很容易出现背景断裂
- CSS Sprites在开发的时候,要通过photoshop或其他工具测量计算每一个背景单元的精确位置
- 在维护的时候比较麻烦,如果页面背景有少许改动,一般就要改这张合并的图片
-精灵图不能随意改变大小和颜色。改变大小会失真模糊,降低用户体验,Css3新属性可以改变精灵图颜色,但是比较麻烦,并且新属性有兼容问题,现在一般用字体图标代替精灵图
总结:
- 当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了
- 降低浏览器向服务器的请求次数,大大提高网页的加载速度。
1 <!-- 2 * @Author: your TM_cc 3 * @Date: 2021-11-14 12:58:15 4 * @LastEditTime: 2021-11-14 13:59:34 5 * @LastEditors: Please set LastEditors 6 * @FilePath: \前端学习\CSS\02-css-sprite精灵图.html 7 --> 8 <!DOCTYPE html> 9 <html lang="en"> 10 <head> 11 <meta charset="UTF-8"> 12 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 13 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 14 <title>精灵图</title> 15 <style> 16 div{ 17 width: 300px; 18 height: 500px; 19 background-color: #aaa; 20 margin: 0 auto 0 auto; 21 background: url('./img/sprite.jpg') no-repeat 0 0/500% 300%; 22 /* 23 no-repeat 取消默认平铺 24 0 0 - 坐标点,A的左上角开始、 25 500% 300% - 根据图片大小缩放,因为是5x3的排列,所以 以 0% 0% 为缩放点,宽5倍、高3倍 26 效果展示位 "A" 27 28 */ 29 } 30 </style> 31 </head> 32 <body> 33 34 <div></div> 35 36 </body> 37 </html>

结果:


浙公网安备 33010602011771号