原文链接:https://github.com/hangyangws/article/blob/master/src/svg.md
本文不能让你成为 SVG 大神,但是能让你知道、了解他「揭开神秘面纱」
基础认知
SVG「Scalable Vector Graphics」表示「可缩放矢量图形『放大不模糊』」面向未来「W3C 标准」。
基本的 SVG 文档由
根元素和
基本形状元素
构成。
作为 XML 的一种方言,SVG 必须正确的绑定命名空间(在 xmlns 属性中绑定)。
命名空间速成
获取更多信息。
SVG 文件全局有效的规则是 「后来居上」,越后面的元素越可见。
能做什么
动画、图形、渐变、旋转、滤镜、JavaScript 接口、各种超酷的动画…
和 HTML 使用的几种方式
src="xxx.svg" height="10" width="10" />
不能使用JS来控制
.svg { background-image: url(xxx.svg);}
最好不使用 base64 格式化 SVG「阻塞其它资源」、不能使用 JS 控制
type="image/svg+xml" src="xxx.svg" />
能使用JS来控制「推荐方式」
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10">…
节省 HTTP 请求,能使用 JS 控制,不能被浏览器缓存。
坐标系统
看图说话「原点在左上角」:
viewBox
width="400" height="300" viewBox="0,0,40,30" style="border:1px solid #cd0000;">
x="10" y="5" width="20" height="15" fill="#cd0000"/>
viewBox demo
动画理解:
深度阅读 - viewBox
CSS、JS 与 SVG
内敛样式
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 68 65">
class="red" d="M10 10v20" />
外链样式
xml-stylesheet type="text/css" href="xxx.css"?>
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 68 65">
class="cls" d="M42 27v-20" />
JS 操作 SVG
如果 SVG 代码作为 DOM 在 HTML 内部,可以向平常一样操作 DOM 操作 SVG
如果是使用