1、sprites精灵图
使用精灵图就是为了减少网页请求服务器发送图片的次数,把一些小图标都放到一张图片(称为精灵图)精确单位,就不会请求服务器多次了
使用精灵图核心:
- 精灵技术主要针对于背景图片使用,就是把多个小背景图片整合到一张大图片中
- 这个大图片也称为sprites 精灵图 或者 雪碧图
- 移动背景图片位置,此时可以使用 background-position
- 移动的距离就是这个目标图片的x和y坐标,注意网页中的坐标有所不同
- 因为一般情况下都是往上往左移动,所以数值是负值
- 使用精灵图的时候需要精确测量,每个小背景图片的大小和位置
使用精灵图核心总结:
- 精灵图主要针对于小的背景图片使用
- 主要借助于背景位置来实现---background-position
- 一般情况下精灵图是负值。(千万要注意网页中的坐标:x轴右边走是正值,左边走是负值,y轴上是负,下是正)
2、字体图标
字体图标的使用场景:主要用于显示网页中通用,常用的一些小图标
精灵图是有诸多优点的,但是缺点也很明显
- 图片文件还是比较大的
- 图片本身放大和缩小会失真
- 一旦图片制作完毕想要更换非常复杂
此时,有一种技术的出现很好的解决了以上问题,就是字体图标iconfont
字体图标可以为前端工程师提供一种方便高效的图标使用方式,展示的是图标,本质属于字体
字体图标的优点:
轻量级:一个图标字体比一系列的图标要小,一旦字体加载了,图标就会马上渲染出来,减少了服务器请求
灵活性:本质其实是文字,可以很随意的改变颜色,产生阴影、透明效果、旋转等
兼容性:几乎支持所有的浏览器,放心使用
注意:字体图标不能代替精灵技术,只是对工作中图标部分技术的提示和优化
2.1、字体图标的使用
源代码
- 把下载包里面的fonts文件夹放入页面根目录下
- html标签内添加小图标,字体font-family一定要和源字体图标里的一致
也可以复制前面的 e91b ,但前面要加 \ 符号,变成:\e91b;
2.2、字体图标的追加
如果工作中,原来的字体图标不够用了,我们需要添加新的字体图标到原来的字体文件中
把压缩包里面的selection.json重新上传,然后选中自己想要的新图标,从新下载压缩包,并替换原来的文件即可,fonts文件夹也要替换掉
总结:
- 如果遇到一些结构和样式比较简单的小图标,就用字体图标
- 如果遇到一些结构和样式复杂一点的小图片,就用精灵图