1. 介绍
- 可缩放矢量图形(Scalable Vector Graphics,SVG),是一种用于描述基于二维的矢量图形的,基于 XML 的标记语言。本质上,SVG 相对于图像,就好比 HTML 相对于文本;
- 文件后缀是 .svg;
- namespace 是 http://www.w3.org/2000/svg;
2. 优点
- 可被非常多的工具读取和修改;
- 相对 jpg, png 尺寸更小,切可压缩性更强;
- 可伸缩;
- 可在图像质量不降低的情况下被放大;
- 文本是可以搜索的;
3. 兼容性
4. 坐标系统
对于所有元素,SVG使用的坐标系统或者说网格系统,和Canvas用的差不多(所有计算机绘图都差不多)。这种坐标系统是:
以页面的左上角为(0,0)坐标点,坐标以像素为单位,x 轴正方向是向右,y 轴正方向是向下。注意,这和你小时候所教的绘图方式是相反的。但是在HTML文档中,元素都是用这种方式定位的。
1 | <rect x="0" y="0" width="100" height="100" /> |
SVG中的四个坐标系包括用户坐标系、自身坐标系、前驱坐标系和参考坐标系。其中,用户坐标系和自身坐标系是客观的坐标系,而前驱坐标系和参考坐标系是相对的坐标系
- 用户坐标系:即世界坐标系,svg 坐标系本身;
- 自身坐标系:图形或图形分组的坐标系;
- 前驱坐标系:父容器的坐标系;svg 的前驱坐标系是世界坐标系;
- 参考坐标系:参考其他坐标系来判断自身的情况时使用;
5. 基础概念
- 视窗:在 svg 标签上设置 width、 height 来控制视窗(viewport);
- 世界: svg 代码定义的世界;
- 视野:世界是无穷大的,视野是观察世界的一个矩形区域;在 svg 中,提供了 viewBox 和 preserveAspectRatio 属性来控制视野;
6. 使用
- img、iframe、object等标签插入网页;
- css 使用;
- 直接插入网页;
- 网页直接打开;
1 | <img src="demo.svg" /> |
7. 实际应用
- iconfont
- highCharts
- D3.js
学习链接: