SVG
什么是SVG?
- SVG 指可伸縮矢量圖形 (Scalable Vector Graphics)
- SVG 用來定義用于網絡的基于矢量的圖形
- SVG 使用 XML 格式定義圖形
- SVG 圖像在放大或改變尺寸的情況下其圖形質量不會有所損失
- SVG 是萬維網聯盟的標準
- SVG 與諸如 DOM 和 XSL 之類的 W3C 標準是一個整體 ? ?
SVG?的優勢
?
下面的例子是一個簡單的 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"></circle>
</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?元素和文檔本身。
注釋:所有的開啟標簽必須有關閉標簽!
?
?
————————————————————————————————————————————————————————————————————————————
?
如何在HTML頁面中插入 SVG:
SVG 文件可通過以下標簽嵌入 HTML 文檔:< embed > 、< object > 或者 < iframe >。
三種把 SVG 文件嵌入 HTML 頁面的不同方法。
使用 < embed > 標簽
< embed > 標簽被所有主流的瀏覽器支持,并允許使用腳本。
注釋:當在 HTML 頁面中嵌入 SVG 時使用 < embed > 標簽是?Adobe SVG Viewer推薦的方法!然而,如果需要創建合法的 XHTML,就不能使用 < embed >。任何 HTML 規范中都沒有 < embed > 標簽。
語法:
注釋:pluginspage?屬性指向下載插件的 URL。
使用 < object > 標簽
< object > 標簽是?HTML 4?的標準標簽,被所有較新的瀏覽器支持。它的缺點是不允許使用腳本。
注釋:假如您安裝了最新版本的 Adobe SVG Viewer,那么當使用 < object > 標簽時 SVG 文件無法工作(至少不能在 IE 中工作)!
語法:
注釋:codebase 屬性指向下載插件的 URL。
使用 < iframe > 標簽
< iframe > 標簽可工作在大部分的瀏覽器中。
語法:
?
————————————————————————————————————————————————————————————————————————————
?
SVG實例——矩形
<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
? ? ?<rect x="20" y="20" rx="10" ry="10" width="300" height="100" style="fill:rgb(0,0,255);stroke-width:1;stroke:rgb(0,0,0);fill-opacity:0.1;stroke- ?opacity:0.9;opacity:0.9"></rect>
</svg>
代碼解釋:
- rect 元素的 width 和 height 屬性可定義矩形的高度和寬度
- style 屬性用來定義 CSS 屬性
- CSS 的 fill 屬性定義矩形的填充顏色(rgb 值、顏色名或者十六進制值)
- CSS 的 stroke-width 屬性定義矩形邊框的寬度
- CSS 的 stroke 屬性定義矩形邊框的顏色
- x 屬性定義矩形的左側位置(例如,x="0" 定義矩形到瀏覽器窗口左側的距離是 0px)
- y 屬性定義矩形的頂端位置(例如,y="0" 定義矩形到瀏覽器窗口頂端的距離是 0px)
- CSS 的 fill-opacity 屬性定義填充顏色透明度(合法的范圍是:0 - 1)
- CSS 的 stroke-opacity 屬性定義筆觸顏色的透明度(合法的范圍是:0 - 1
- CSS 的 opacity 屬性定義整個元素的透明值(合法的范圍是:0 - 1)
- rx 和 ry 屬性可使矩形產生圓角。
?
?
————————————————————————————————————————————————————————————————————————————
?
SVG實例——圓形
circle?標簽可用來創建一個圓,它只有3個屬性用來設置圓形。
代碼解釋:
- cx?和?cy?屬性定義圓點的 x 和 y 坐標。如果省略 cx 和 cy,圓的中心會被設置為 (0, 0)
- r?屬性定義圓的半徑。
————————————————————————————————————————————————————————————————————————————
?
SVG實例——橢圓
ellipse?標簽可用來創建橢圓。橢圓與圓很相似。不同之處在于橢圓有不同的 x 和 y 半徑,而圓的 x 和 y 半徑是相同的。
<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
? ? ? ? ? <ellipse cx="300" cy="150" rx="200" ry="80" style="fill:rgb(200,100,50);stroke:rgb(0,0,100);stroke-width:2"></ellipse>
</svg>
代碼解釋:
- cx 屬性定義圓點的 x 坐標
- cy 屬性定義圓點的 y 坐標
- rx 屬性定義水平半徑
- ry 屬性定義垂直半徑
————————————————————————————————————————————————————————————————————————————
SVG實例——線條
line?標簽用來創建線條。
<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
<line x1="0" y1="0" x2="300" y2="300" style="stroke:rgb(99,99,99);stroke-width:2"></line>
</svg>
代碼解釋:
- x1 屬性在 x 軸定義線條的開始
- y1 屬性在 y 軸定義線條的開始
- x2 屬性在 x 軸定義線條的結束
- y2 屬性在 y 軸定義線條的結束
SVG的實例有很多,可以百度一下,網上有很多的美麗的圖形代碼,本筆記主要記錄SVG實現的原理和在文檔中的格式
?
轉載于:https://www.cnblogs.com/CloverH/p/5031922.html
總結
 
                            
                        - 上一篇: LRU 实现缓存
- 下一篇: C#动态操作DataTable(新增行、
