CSS高级技巧 之 精灵图、字体图标的引入与追加-爱代码爱编程
一、精灵图
1. 为什么需要精灵图?
一个网中会应用很多个小背景图像作为修饰,当网页中的图像过多时,服务器就会频繁地接收和发送请求图片,造成服务器请求压力过大,这将大大降低页面的加载速度。
因此,为了有效地减少服务器接收和发送请求的次数,提高页面的加载速度,没出现了CSS精灵技术(也成CSS Sprites)。
2. 精灵图的使用核心
- 精灵图主要针对小的背景图片使用,就是把多个小背景图片整合到一张大图片中。
- 这个大图片也称为sprites 精灵图 或者 雪 碧图。
- 移动背景图片位置,此时可以使用background-position。
- 移动的距离就是这个背景图片的x和y坐标。注意网页中的坐标有所不同。
- 往上或往左移动精灵图,直到所需图片移动到位置上,往上或往左移动的数值是负值。
<div class="box1"></div>
.box1 {
width: 60px;
height: 60px;
background: url(images/sprites.png) no-repeat -182px 0;
/* background-position: -182px 0; */
}
二、字体图标
字体图标使用场景:主要用于显示页面中通用、常用的一些小图标。
精灵图有诸多优点,但缺点依旧明显,比如:
- 图片文件还是比较大
- 图片本身放大和缩小会失真
- 一旦制作完毕想要更换非常复杂
此时,字体图标iconfont可以很好解决上述问题。
字体图标可以为前端工程师提供一种方便高效的图表使用方式,展示的是图标、本质属于字体。
1. 字体图标的优点
- 轻量级:一个图标字体比一系列的图像要小。一旦字体加载了,图标就会马上渲染出来,减少了服务器请求。
- 灵活性:本质其实是文字,可以很随意的改变颜色、产生阴影、透明效果、旋转等。
- 兼容性:几乎支持所有浏览器。
注意:字体图标不能代替精灵技术,只是对工作中图标部分技术的提升和优化。
总结:
- 结构和样式比较简单的小图标,就用字体图标
- 结果和样式比较复杂的小图片,就用精灵图
2. 字体图标下载网站
- icomoon字库 http://icomoon.io/
- 阿里iconfont字库 http://www.iconfont.cn/
3. 字体图标的引入
1) 把下载包里面的fonts文件夹放入页面的根目录下。
2)在CSS样式中全局声明字体,通过CSS引入到页面中。
打开style.css文件,找到下面这段代码。
注意字体文件路径问题。
<style>
@font-face {
font-family: 'icomoon';
/* 注意路径! */
src: url('fonts/icomoon.eot?7kkyc2');
src: url('fonts/icomoon.eot?7kkyc2#iefix') format('embedded-opentype'),
url('fonts/icomoon.ttf?7kkyc2') format('truetype'),
url('fonts/icomoon.woff?7kkyc2') format('woff'),
url('fonts/icomoon.svg?7kkyc2#icomoon') format('svg');
font-weight: normal;
font-style: normal;
}
</style>
3)html标签内添加小图标
在demo.html文件中,复制所需图标右侧的小方框,粘贴到span标签中
所有图标后的小方框外形虽然相同,但显示出来的图标是不同的。
4)利用span标签选择器给图标设置样式
span {
font-family: 'icomoon';
font-size: 100px;
color: pink;
}
4. 字体图标追加
如果工作中,原来字体图标不够用了,需要添加新的字体图标到原来的字体文件中。
把压缩包中的selection.json重新上传,然后选中自己想要的新图标,从新下载压缩包,替换原来的文件即可。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/qq_43623147/article/details/111093118