即
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指定的是填充的颜色。