可縮放矢量圖形(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,一樣也能夠在瀏覽器中動態地建立、修改和刪除圖片。