可缩放矢量图形(Scalable Vector Graphics)是基于可扩展标记语言(标准通用标记语言的子集),用于描述二维矢量图形的一种图形格式。它由万维网联盟制定,是一个开放标准。SVG 是使用 XML 来描述二维图形和绘图程序的语言。算法
在 2003 年一月,SVG 1.1 被确立为 W3C 标准。编程
参与定义 SVG 的组织有:太阳微系统、Adobe、苹果公司、IBM 以及柯达。浏览器
与其余图像格式相比,使用 SVG 的优点在于:网络
SVG 的主要竞争者是 Flash。ide
与 Flash 相比,SVG 最大的优点是与其余标准(好比 XSL 和 DOM)相兼容。而 Flash 则是未开源的私有技术。svg
今天,全部浏览器均支持 SVG 文件,不过须要安装插件的 Internet Explorer 除外。插件是免费的,好比 Adobe SVG Viewer。函数
SVG 使用 XML 编写。工具
下面的例子是一个简单的 SVG 文件的例子。SVG 文件必须使用 .svg 后缀来保存:编码
<?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg"> <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red"/> </svg>
(如需查看 SVG 源代码,请打开此例,而后在窗口中右击。选择“查看源代码”。)
第一行包含了 XML 声明。请注意 standalone 属性!该属性规定此 SVG 文件是不是“独立的”,或含有对外部文件的引用。
standalone="no" 意味着 SVG 文档会引用一个外部文件 - 在这里,是 DTD 文件。
第二和第三行引用了这个外部的 SVG DTD。该 DTD 位于 “http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd”。该 DTD 位于 W3C,含有全部容许的 SVG 元素。
SVG 代码以 <svg> 元素开始,包括开启标签 <svg> 和关闭标签 </svg> 。这是根元素。width 和 height 属性可设置此 SVG 文档的宽度和高度。version 属性可定义所使用的 SVG 版本,xmlns 属性可定义 SVG 命名空间。
SVG 的 <circle> 用来建立一个圆。cx 和 cy 属性定义圆中心的 x 和 y 坐标。若是忽略这两个属性,那么圆点会被设置为 (0, 0)。r 属性定义圆的半径。
stroke 和 stroke-width 属性控制如何显示形状的轮廓。咱们把圆的轮廓设置为 2px 宽,黑边框。
fill 属性设置形状内的颜色。咱们把填充颜色设置为红色。
关闭标签的做用是关闭 SVG 元素和文档自己。
注释:全部的开启标签必须有关闭标签!
SVG 文件可经过如下标签嵌入 HTML 文档:<embed>、<object> 或者 <iframe>。
<embed> 标签被全部主流的浏览器支持,并容许使用脚本。
注释:当在 HTML 页面中嵌入 SVG 时使用 <embed> 标签是 Adobe SVG Viewer 推荐的方法!然而,若是须要建立合法的 XHTML,就不能使用 <embed>。任何 HTML 规范中都没有 <embed> 标签。
<embed src="rect.svg" width="300" height="100" type="image/svg+xml" pluginspage="http://www.adobe.com/svg/viewer/install/" />
注释:pluginspage 属性指向下载插件的 URL。
<object> 标签是 HTML 4 的标准标签,被全部较新的浏览器支持。它的缺点是不容许使用脚本。
注释:假如您安装了最新版本的 Adobe SVG Viewer,那么当使用 <object> 标签时 SVG 文件没法工做(至少不能在 IE 中工做)!
<object data="rect.svg" width="300" height="100" type="image/svg+xml" codebase="http://www.adobe.com/svg/viewer/install/" />
注释:codebase 属性指向下载插件的 URL。
<iframe> 标签可工做在大部分的浏览器中。
<iframe src="rect.svg" width="300" height="100"> </iframe>
开发:
SVG是一个XML文件,用于XML编程的两种模型DOM和SAX也适用于它。由于SVG是被设计用于互联网,因此经过Javascript和DOM访问它就是最重要的应用模式。经过Javascript和DOM能够动态地修改HTML,一样也能够在浏览器中动态地建立、修改和删除图片。