即
Scalable
Vector
Graphics,是一种用来绘制矢量图的
HTML5
标签。你只需定义好XML属性,就能获得一致的图像元素。
使用SVG之前先将标签加入到HTML
body中。就像其他的HTML标签一样,你可以为SVG标签为之添加ID属性。也可以为之添加css样式,例如“border-style:solidborder-width:2px”。SVG标签跟其它的HTML标签有通用的属性。你可以用height="100px"
width="200px"
为其添加高度和宽度。
现在就将SVG元素加入到我们HTML代码中,SVG提供很多绘图形状,例如线条、圆、多边形等。
SVG线条:
SVG线条用标签定义,在此标签内你还可以定义其他的属性。
该标签包括像起点坐标(x1,y1)和终点坐标(x2,y2)这样的属性。指定x1,y1,x2,y2值来设定起点终点坐标。在指定好坐标后,可以为之添加一些样式,在style属性中使用“stroke:Green”为线条指定颜色。同样你也可以用stroke-width:2为线条设置宽度。
html 直接使用svg图片不能显示是设置错误造成的,解决方法为:
1、点击电脑开始菜单,找到Inscape工具并点击打开。
2、在Inscape工具编辑界面,绘制两个圆形,设置不同半径和不同颜色填充。
3、设置完毕后,将其导出成SVG格式,存储到桌面上。
4、通过快捷方式打开HBuilderX工具,并新建Web项目,将svg图片复制到项目指定目录下,然后新建一个静态页面。
5、在body标签内,添加一个embed标签,将SVG图片引入到页面里。
6、保存代码并直接使用浏览器预览,可以查看到SVG图片效果。
SVG 是一种使用 XML 描述 2D 图形的语言。
Canvas 通过 JavaScript 来绘制 2D 图形。
1. 对于画在Canvas上的部件,你需要处理重绘。而SVG则不用,你修改svg dom则系统会自动帮你重绘
2.Hittest,即canvas不负责帮你侦测鼠标/触摸事件发生在哪一个图形元件上;而svg可以。
3.Canvas效率高得多canvas的工作方式就像传统的2d图形引擎比如GDI;而SVG的工作方式更像WPF(XAML)、HTML/CSS这类由标记控制的绘图引擎
4.Canvas 是逐像素进行渲染的。在 canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何或许已被图形覆盖的对象。
5.SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事件处理器。在 SVG 中,每个被绘制的图形均被视为对象。