参看一篇博客:《使用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
「@浪里淘沙的小法师」
