svg是一种开放标准的矢量图形语言,是可缩放的矢量图形格式。svg格式的图像可任意放大图形显示,而且边缘异常清晰,生成的文件很小,方便传输,文字在svg图像中保留可编辑和可搜寻的状态,没有字体的限制,所以十分适合用于设计高分辨率的Web图形页面。
svg是目前十分流行的图像文件格式了,svg严格来说应该是一种开放标准的矢量图形语言,使用svg格式我们可以直接用代码来描绘图像,可以用任何文字处理工具打开svg图像,通过改变部分代码来使图像具有交互功能,并可以随时插入到HTML中通过浏览器(如火狐浏览器)来观看。使用svg格式可让你设计激动人心的、高分辨率的Web图形页面。
svg格式具备目前网络流行的jpg和png等格式无法具备的优势:可以任意放大图形显示,但绝不会以牺牲图像质量为代价;可在svg图像中保留可编辑和可搜寻的状态;平均来讲,svg文件比其它格式的图像文件要小很多,因而下载也很快。
简单来说就是既可以当图片来显示,又可以当作文字来显示,而且他的大小比起png,jpg又小得多
至于为什么要用svg,理由也是多种多样,有时候感觉很重要,像我,喜欢上svg,只是因为看到一幅svg版的中国地图。
//myfirst.svg
<svg xmlns=”http://www.w3.org/2000/svg” xmlns:xlink=”http://www.w3.org/1999/xlink”>
<text x=”0″ y=”15″ fill=”red”>下面是长方形</text>
<rect x=”0″ y=”24″ width=”300″ height=”100″ fill=”yellow”></rect>
<text x=”0″ y=”164″>下面是带有透明度的圆形</text>
<circle cx=”50″ cy=”244″ r=”40″ opacity=”0.3″></circle>
</svg>
效果如下:
这效果也没什么。是的
接下来是我们的html文件:
index.html:
<!– <polygon points=”100,10 40,180 190,60 10,60 160,180″–>
<!–<text x=”0″ y=”15″ fill=”red”>I love SVG</text>–>
<!–<a xlink:href=”http://www.w3cschool.cc/svg/” target=”_blank”>–>
<!–<text x=”0″ y=”15″ fill=”red”>I love SVG</text>–>
<!–</a>–>
<!–动画–>
<!–<rect x=”20″ y=”20″ width=”250″ height=”250″ style=”fill:blue”>–>
<!–<animate attributeType=”CSS” attributeName=”opacity” from=”1″ to=”0″ dur=”5s” repeatCount=”indefinite” />–>
<!–</rect>–>
<!DOCTYPE html>
<html>
<head>
<meta charset=”UTF-8″>
<title></title>
</head>
<body>
<!–当用图片显示的时候不需要使用object对象,只需要是哟个image对象–>
<!–<img id=”myimg” src=”myfirst.svg” style=”width: 100%;” />–>
<button id=”clickme”>clickme</button>
<object id=”myobject” data=”myfirst.svg”></object>
<script src=”a.js”></script>
</body>
</html>
其中有a。js文件,那么久上文件:
a.js
document.getElementById(“clickme”).addEventListener(“click”, function() {
//以下是在js中操作svg的方法
document.getElementById(“myobject”).getSVGDocument().getElementById(“myrect”).setAttribute(“fill”, “yellow”);
});
a。js提供了使用svg节点的方法,对了,由于我改动过东西,所以会报错,你们在svg文件的recr中加个id就可以了
至于怎么去绘制svg图像,这个我建议大家去w3c好好学习