如何在HTML5中使用SVG

html-css034

如何在HTML5中使用SVG,第1张

svg

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为线条设置宽度。

svg画圆:

svg提供了一种不同的标签来画圆。正如你看到的下面代码,circle有个id为mycircle。为了定义圆的中心以及半径,使用cx="55"

cy="55"以及r="50"属性分别定义。使用fill="#219e3e"为圆填充颜色。同样你可以用stroke="#17301d"

stroke-width="2"定义圆周线条颜色和宽度。

svg矩形:

同样的使用标签来画矩形,我们同样设置了

id

属性

“myrectangle”

,用

width="300"

height="100"

定义高宽,使用

fills

属性定义填充颜色。用

strock

定义边框。还有一点需要注意,我用

fill-opacity="0.5"

stroke-opacity="0.5"

stroke

filling

都添加了透明度。

svg椭圆:

我们同样是用标签来绘制椭圆。设置其

id="myellipse"

,给定起中心坐标

cx="120"cy="60",长轴短轴半径

rx="100"

ry="50",并用设置填充颜色、边框宽度以及边框颜色style="fill:#3f5208stroke:blackstroke-width:3"。

svg多边形:

我们使用特定标签绘制多边形,points属性用来定义多边形的几个顶点,用左边对来定义,形如

points="10,10

75,150

150,60"

,这里定义了三个顶点(10,10),(75,150),(150,60)。同上面一样,用

style="fill:#63bcf7stroke:blackstroke-width:3"

定义多边形填充颜色、边框以及边框宽度。

Html5中有两种常见的方法可以用来点击事件的方法有两种,SVG和Canvas。这两者都能使你在浏览器中绘图,但是他们的原理就大相径庭了。最近我对于SVG和Canvas都做了很细致的研究和使用,大致弄清了这两者之间的区别,下面就为大家进行详细的讲解,希望对大家能够有帮助。

首先为大家简单介绍一下这两种方法的工作原理,SVG是在XML中描述二维图形,所以在SVG DOM中的每一个元素都是可用的,你可以为每一个元素增加JS事件处理器。而Canvas是在fly上绘画2D图形,也是使用JS事件处理器,它的绘画能够按照像素重新生成。除此之外,在SVG中,每个图形都会被标记,只要SVG对象属性发生改变,浏览器就会自动重新生成相对应的新图像了,而在Canvas中,一旦图形完成,就会被遗忘,不会被标记,更不用说根据目标对象属性的改变而重新生成新图像了。

第二点,SVG和Canvas的一些其他区别。首先在分辨率上,Canvas是非常依赖图形的分辨率的,这也就限制了我们对于图形的选择,导致大家的实际操作出现很多的麻烦和困难,而SVG对于分辨率就不是那么依赖了,对于图形的选择更加自由。其次,SVG还能支持事件处理器,相对于不能支持事件处理器的Canvas来说,也是十分方便的。最后,在应用方面,由于SVG复杂高度的渲染能力使得它适合带有大型渲染区域的应用程序,例如谷歌地图,而Canvas它的文本渲染能力很弱,渲染速度快,最适合图像密集型的游戏。

html5中的svg是可缩放矢量图形(Scalable Vector Graphics),SVG 使用 XML 格式定义图像的。颜色的定义是用stroke属性,可以指定颜色值。

1、定义svg:

<html>

<body>

<h1>My first

SVG</h1>

<svg xmlns="http://www.w3.org/2000/svg"

version="1.1">

  <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" />

</svg>

</body>

</html>

2、运行效果如下:

以上stroke指定的是边框的颜色,fill指定的是填充的颜色。