最后更新:2024-02-09
三、icon全解
大纲
- img 法
- background 法
- background 合一法
- font 法
- SVG 法
- 新手慎用:「CSS 就是干」法
使用img标签来显示图标
1 | <div> |
使用img标签的好处:可以自适应宽高,可直接设置一个宽度width就可以了,图片会默认保持比例显示。要保持图片的原始比例。
使用background背景色设置图标
1 | <style> |
使用背景色设置图标的好处: 不会因为div大小变动而改变图标,也就是图标是固定的。
CSS Sprite(雪碧图、精灵图)
简介:把多个图标放到一张大图上,然后使用background属性来显示图标,每个图标只显示自己对应位置。
CSS Sprites可使用在线工具来自动生成。可在Google中搜索:css sprites generator.
下面以http://css.spritegen.com/ 网站为例讲解图和制作一个雪碧图。
选择多个图标。
在 Output Type中选择对要保存图片格式。 填上类名前缀。
点击Create Sprite ,创建一个雪碧图,然后页面就会跳转到结果页面。
保存合并的图标图片。
复制CSS样式到自己的项目中,修改
background:url('png.png') 中图片名为自己的图片名称。直接引用CSS类名即可。
1
2
3
4
5
6
7
8
9
10
11<style>
.iconqq, .icon-air, .icon-pp
{ display: inline-block; background: url('./icon.png') no-repeat; overflow: hidden; text-indent: -9999px; text-align: left; }
.iconqq { background-position: -0px -0px; width: 200px; height: 200px; }
.icon-air { background-position: -0px -200px; width: 200px; height: 200px; }
.icon-pp { background-position: -0px -400px; width: 200px; height: 200px; }
</style>
<span class="icon-pp"></span>
<span class="iconqq"></span>
<span class="icon-pp"></span>
雪碧图原理:
每个图标背景图都是一张图片,通过background-postion属性来调整图片的位置,然后调整元素的窗口大小即可。
字体图标
在线图标库:http://www.iconfont.cn/
字体图标的原理: 把图标做成字体,然后引入这个字体样式,最后在页面中写出图标对应的字。
可在Mac系统里打开字体册应用来查看每种字体的不同。
同时按cmd + 空格 键打开Spotlight 搜索, 在里面输入Font Book.app或者字体册.app即可查看Mac系统的字体
html转义(html entity)
html中有些字符是预留的,如(<)小于号,如果直接使用,浏览器会认为这个标签,如果想使用这些预留字符,则必须在 HTML 源代码中使用字符实体(character entities)。字符实体类似于:
1 | &entity_name; |
unicode编码中以æ开头是编码是没有任何意义的,所以字体图标使用了以æ开头的Unicode编码。
在线字体图标制作
- 打开iconfont.cn网站,在搜索框中搜索图标 -> 选择图标 -> 放入购物车 -> 点击购物车 -> 在下面选择添加至项目 -> 选择一个项目,确定 。
- 此时会跳转到我的项目页面,然后点击生成代码(或更新代码).
使用Unicode方式显示图标
在iconfont网站的我的项目页面中, 点击Unicode选项,复制代码到页面CSS文件中,然后在页面中写入图标的Unicode编码。
1 | <style> |
使用font class 方式显示图标
在CSS样式使用图标的原理就是使用伪元素,如上面的例子中所示,
在iconfont网页中的我的项目中点击Font Class,然后复制链接,放到自己项目中页面的link标签中,然后在标签中加入相关样式
1 | <link rel="stylesheet" href="//at.alicdn.com/t/font_609932_yooo7yr926ueg66r.css"> |
使用Symbol 方式显示图标
在iconfont网页中的我的项目中点击Symbol,然后复制链接,放到自己项目中页面的script标签中,
这个Script脚本在网页里面注入了一个看不见SVG标签
1 | <script src="//at.alicdn.com/t/font_609932_yooo7yr926ueg66r.js"></script> |
SVG的好处:1. SVG支持CSS。 2. 不会变形(要同时设置宽高才会变形)。 图标没有锯齿。3. 默认就是居中的。4. 可以做渐变,可以做动画。
缺点: 如果这个SVG图片有颜色,那么就不能修改颜色了。
使用CSS样式自己画一个图标
在Google或者百度上搜索CSS ICON – project by Wenting Zhang
下面就是使用CSS画了一个放大镜图标:
1 | <style> |
这样做的好处就是让自己的CSS知识更扎实。





