参看一篇博客:《使用SVG symbols建立图标系统完整指南》
一、svg symbol 的大概逻辑
svg symbol 的大概逻辑是这样的,先建立一个 svg 图形模板对象,然后使用 svg 的 use 方法引用图标
// 建立 svg 图形模板对象
// 一个 symbol 就是一个图标
<svg>
<symbol id="xxx">
<path></path>
</symbol>
<symbol id="yyy">
<path></path>
</symbol>
<symbol id="zzz">
<path></path>
</symbol>
</svg>
// 使用图标
// svg 中使用 use 方法
<svg>
<use xlink:href="#heart"/>
</svg>
建立 svg 图形模板不是我们手动生成的,一般都是通过模块化工具或 JavaScript 自动生成
二、阿里的 IconFont 网站
这个网站非常贴心,我们可以在上面批量选择一群 svg 图标并制作成一个单独的 svg 图形模板对象,我在这里就简称为「svg 图标库」吧。我们怎么把这个「svg 图标库」引入进我们的项目里呢?
网站的强大之处就来了,它已经帮我们生成好了代码,并提供两种引入方式供我们选择。
- 方式一:把整个「svg 图标库」的代码下载本地,然后引入其中的 js 代码
- 方式二:网站贴心地为「svg 图标库」提供免费的在线 js,我们点击生成在线 js,直接引入即可
三、一些使用细节
- 我们一般把 js 代码放到项目中靠前的位置,常常放在 head 标签里,因为后面我们就要使用到它了
- 这段 js 代码会在 body 标签的开头生成「svg 标签」,其中包裹着「symbol 标签」→「use 标签」
- 在需要用到图标的地方,使用「svg 标签」包裹「use 标签」的形式引入 svg
「@浪里淘沙的小法师」