1.什麼是SVG? SVG 指可伸縮矢量圖形 (Scalable Vector Graphics) SVG 用來定義用於網路的基於矢量的圖形 SVG 使用 XML 格式定義圖形 SVG 圖像在放大或改變尺寸的情況下其圖形質量不會有所損失 2.簡單的 SVG 實例 一個簡單的SVG圖形例子: 這裡是S ...
1.什麼是SVG?
SVG 指可伸縮矢量圖形 (Scalable Vector Graphics)
SVG 用來定義用於網路的基於矢量的圖形
SVG 使用 XML 格式定義圖形
SVG 圖像在放大或改變尺寸的情況下其圖形質量不會有所損失
2.簡單的 SVG 實例
一個簡單的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 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>
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 元素。
- width 和 height 屬性可設置此 SVG 文檔的寬度和高度。version 屬性可定義所使用的 SVG 版本,xmlns 屬性可定義 SVG 命名空間。
- SVG 的 <circle> 用來創建一個圓。cx 和 cy 屬性定義圓中心的 x 和 y 坐標。如果忽略這兩個屬性,那麼圓點會被設置為 (0, 0)。r 屬性定義圓的半徑。
- stroke 和 stroke-width 屬性控制如何顯示形狀的輪廓。我們把圓的輪廓設置為 2px 寬,黑邊框。
- fill 屬性設置形狀內的顏色。我們把填充顏色設置為紅色。
3.SVG 矩形 - <rect>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <rect x="50" y="20" width="150" height="150" style="fill:blue;stroke:pink;stroke-width:5;fill-opacity:0.1; stroke-opacity:0.9"/> </svg>
4.SVG 圓形 - <circle>
<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>
5.SVG 橢圓 - <ellipse>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <ellipse cx="300" cy="80" rx="100" ry="50" style="fill:yellow;stroke:purple;stroke-width:2"/> </svg>
6.SVG 直線 - <line>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
//x1 屬性在 x 軸定義線條的開始
//y1 屬性在 y 軸定義線條的開始
//x2 屬性在 x 軸定義線條的結束
//y2 屬性在 y 軸定義線條的結束
<line x1="0" y1="0" x2="200" y2="200" style="stroke:rgb(255,0,0);stroke-width:2"/>
</svg>
7.SVG 路徑 - <path>
<path> 元素用於定義一個路徑。
下麵的命令可用於路徑數據:
- M = moveto
- L = lineto
- H = horizontal lineto
- V = vertical lineto
- C = curveto
- S = smooth curveto
- Q = quadratic Bézier curve
- T = smooth quadratic Bézier curveto
- A = elliptical Arc
- Z = closepath
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <path d="M150 0 L75 200 L225 200 Z" /> </svg>
命令詳細用法請參見:https://developer.mozilla.org/zh-CN/docs/Web/SVG/Tutorial/Paths
svg動畫請參考:http://www.zhangxinxu.com/wordpress/2014/08/so-powerful-svg-smil-animation/
8.SVG 文本 - <text>
<!-- 普通文本 -->
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <text x="0" y="15" fill="red">I love SVG</text> </svg>
<!-- 轉動文本 -->
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <text x="0" y="15" fill="red" transform="rotate(30 20,40)">I love SVG</text> </svg>
<!-- 鏈接文本 -->
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink"> <a xlink:href="http://www.w3schools.com/svg/" target="_blank"> <text x="0" y="15" fill="red">I love SVG</text> </a> </svg>
//其他用法後序補上