SVG Sprite 使用Symbol元素制作ICON
2018-07-04 本文已影响15人
passMaker
介绍
SVG是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。之前写过两篇关于CSS icon在页面显示的博客,后来了解到现在大多数前端团队和项目都在使用SVG Sprite这种方式进行制作ICON和让ICON实现页面显现。
SVG有什么优势和特点?
SVG方法与这两种相比具有如下特点:
- 支持多色图标了,不再受单色限制。
- 通过一些技巧,支持像字体那样,通过
font-size
,color
来调整样式。 - 兼容性较差,支持 ie9+,及现代浏览器。
- 浏览器渲染svg的性能一般,还不如png。
使用方法和步骤
在之前关于字体图标的三两事当中我们讲过了Unicode和Font class获取连接地址并进行字体设置的方法,我们回到阿里图标库,在筛选好了我们项目需要的图标并修改好他们的名称之后,这次选择symbol,并复制他的代码。
第一步:拷贝项目下面生成的symbol代码到HTML文件head的
<script></script>
中://at.alicdn.com/t/font_732020_vyfui00rk3.js
这里同样跟之前一样,要注意协议,最好直接在前面加上https。
即
<script src="https://at.alicdn.com/t/font_732020_vyfui00rk3.js"></script>
第二步:加入通用css代码(引入一次就行):
<style type="text/css">
.icon {
width: 1em; height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
</style>
第三步:挑选相应图标并获取类名,应用于页面:
例如我们要加入一个之前命名为icon-weixin1的微信图标,就在body中加入这段<svg></svg>
<svg class="icon" aria-hidden="true">
<use xlink:href="#icon-weixin1"></use>
</svg>
demo代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="https://at.alicdn.com/t/font_732020_vyfui00rk3.js"></script>
<style type="text/css">
.icon {
width: 1em; height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
</style>
<title> svg-sprite-demo </title>
</head>
<body>
<svg class="icon" aria-hidden="true">
<use xlink:href="#icon-weixin1"></use>
</svg>
<svg class="icon" aria-hidden="true">
<use xlink:href="#icon-weixin2"></use>
</svg>
<svg class="icon">
<use xlink:href="#icon-weibo1">333</use>
</svg>
</body>
</html>
放大也不会失真和有锯齿