VG 表示可伸縮矢量圖形,這是一門用於描述 2D 圖形的語言,圖形應用使用 XML 編寫,然後 XML 由 SVG 閱讀器程序呈現。
SVG 主要用於矢量類型的圖表,比如餅圖,X,Y 坐標系統中的二維圖等等。
SVG 在 2003 年 1 月 14 日成為 W3C 推薦標准,你可以在 SVG 規范 頁面中查看最新版本的 SVG 規范。
查看 SVG 文件
大多數 Web 浏覽器都可以顯示 SVG,就像它們可以顯示 PNG,GIF 以及 JPG 圖形。IE 用戶可能需要安裝 Adobe SVG 閱讀器 以便能夠在浏覽器中查看 SVG。
在 Html5 中嵌入 SVG
Html5 允許我們直接使用 __<svg>...</svg> 標簽嵌入 SVG,下面是簡單的語法:
XML/Html Code復制內容到剪貼板
- <svg XMLns="http://www.w3.org/2000/svg">
- ...
- </svg>
Html5 - SVG 圓
下面是一個 SVG 示例的 Html5 版本,用 <circle> 標簽繪制一個圓:
XML/Html Code復制內容到剪貼板
- <!DOCTYPE Html>
- <head>
- <title>SVG</title>
- <meta charset="utf-8" />
- </head>
- <body>
- <h2>Html5 SVG Circle</h2>
- <svg id="svgelem" height="200" XMLns="http://www.w3.org/2000/svg">
- <circle id="redcircle" cx="50" cy="50" r="50" fill="red" />
- </svg>
- </body>
- </Html>
在啟用 Html5 的最新版 Firefox 中會生成如下結果:
Html5 - SVG 矩形
下面是一個 SVG 示例的 Html5 版本,用 <rect> 標簽繪制一個矩形:
XML/Html Code復制內容到剪貼板
- <!DOCTYPE Html>
- <head>
- <title>SVG</title>
- <meta charset="utf-8" />
- </head>
- <body>
- <h2>Html5 SVG Rectangle</h2>
- <svg id="svgelem" height="200" XMLns="http://www.w3.org/2000/svg">
- <rect id="redrect" width="300" height="100" fill="red" />
- </svg>
- </body>
- </Html>
在啟用 Html5 的最新版 Firefox 中會生成如下結果:
Html5 - SVG 線條
下面是一個 SVG 示例的 Html5 版本,用 <line> 標簽繪制一個線條:
XML/Html Code復制內容到剪貼板
- <!DOCTYPE Html>
- <head>
- <title>SVG</title>
- <meta charset="utf-8" />
- </head>
- <body>
- <h2>Html5 SVG Line</h2>
- <svg id="svgelem" height="200" XMLns="http://www.w3.org/2000/svg">
- <line x1="0" y1="0" x2="200" y2="100"
- style="stroke:red;stroke-width:2"/>
- </svg>
- </body>
- </Html>
你可以使用 style 屬性給它設置額外的樣式信息,比如筆畫,填充色,筆畫寬度等等。
在啟用 Html5 的最新版 Firefox 中會生成如下結果:
Html5 - SVG 橢圓
下面是一個 SVG 示例的 Html5 版本,用 <ellipse> 標簽繪制一個橢圓:
XML/Html Code復制內容到剪貼板
- <!DOCTYPE Html>
- <head>
- <title>SVG</title>
- <meta charset="utf-8" />
- </head>
- <body>
- <h2>Html5 SVG Ellipse</h2>
- <svg id="svgelem" height="200" XMLns="http://www.w3.org/2000/svg">
- <ellipse cx="100" cy="50" rx="100" ry="50" fill="red" />
- </svg>
- </body>
- </Html>
在啟用 Html5 的最新版 Firefox 中會生成如下結果:
Html5 - SVG 多邊形
下面是一個 SVG 示例的 Html5 版本,用 <polygon> 標簽繪制一個多邊形:
XML/Html Code復制內容到剪貼板
- <!DOCTYPE Html>
- <head>
- <title>SVG</title>
- <meta charset="utf-8" />
- </head>
- <body>
- <h2>Html5 SVG Polygon</h2>
- <svg id="svgelem" height="200" XMLns="http://www.w3.org/2000/svg">
- <polygon points="20,10 300,20, 170,50" fill="red" />
- </svg>
- </body>
- </Html>
在啟用 Html5 的最新版 Firefox 中會生成如下結果:
Html5 - SVG 折線
下面是一個 SVG 示例的 Html5 版本,用 <polyline> 標簽繪制一個折線圖:
XML/Html Code復制內容到剪貼板
- <!DOCTYPE Html>
- <head>
- <title>SVG</title>
- <meta charset="utf-8" />
- </head>
- <body>
- <h2>Html5 SVG Polyline</h2>
- <svg id="svgelem" height="200" XMLns="http://www.w3.org/2000/svg">
- <polyline points="0,0 0,20 20,20 20,40 40,40 40,60" fill="red" />
- </svg>
- </body>
- </Html>
在啟用 Html5 的最新版 Firefox 中會生成如下結果:
Html5 - SVG 漸變
下面是一個 SVG 示例的 Html5 版本,用 <ellipse> 標簽繪制一個橢圓,使用 <radialGradIEnt> 標簽定義一個 SVG 徑向漸變。
我們可以以類似的方式用 <linearGradIEnt> 標簽創建 SVG 線性漸變。
XML/Html Code復制內容到剪貼板
- <!DOCTYPE Html>
- <head>
- <title>SVG</title>
- <meta charset="utf-8" />
- </head>
- <body>
- <h2>Html5 SVG GradIEnt Ellipse</h2>
- <svg id="svgelem" height="200" XMLns="http://www.w3.org/2000/svg">
- <defs>
- <radialGradIEnt id="gradIEnt" cx="50%" cy="50%" r="50%"
- fx="50%" fy="50%">
- <stop offset="0%" style="stop-color:rgb(200,200,200);
- stop-opacity:0"/>
- <stop offset="100%" style="stop-color:rgb(0,0,255);
- stop-opacity:1"/>
- </radialGradIEnt>
- </defs>
- <ellipse cx="100" cy="50" rx="100" ry="50"
- style="fill:url(#gradIEnt)" />
- </svg>
- </body>
- </Html>
在啟用 Html5 的最新版 Firefox 中會生成如下結果: