【一、項目背景】
SVG 表示可伸縮矢量圖形,這是一門用于描述 2D 圖形的語言,圖形應(yīng)用使用 XML 編寫,然后 XML 由 SVG 閱讀器程序呈現(xiàn)。支持三種類型的圖形對象:矢量圖形形狀(例如,由直線和曲線組成的路徑),圖像和文本。圖形對象可以進行分組,樣式設(shè)置,轉(zhuǎn)換和合成。功能集包括嵌套轉(zhuǎn)換,剪切路徑,Alpha蒙版,濾鏡效果和模板對象。。
SVG 在 2003 年 1 月 14 日成為 W3C 推薦標(biāo)準(zhǔn),你可以在 SVG 規(guī)范 頁面中查看最新版本的 SVG 規(guī)范。
【二、怎么查看 SVG 文件?】
大多數(shù) Web 瀏覽器都可以顯示 SVG,就像它們可以顯示 PNG,GIF 以及 JPG 圖形。IE 用戶可能需要安裝 Adobe SVG 閱讀器以便能夠在瀏覽器中查看 SVG。
【三、HTML5 中嵌入 SVG】
HTML5 允許我們直接使用 _...</svg> 標(biāo)簽嵌入 SVG,
簡單的語法:
<svg xmlns="http://www.w3.org/2000/svg">
</svg>
拓展:
FireFox 3.7 還引入了一個配置選項("about:config"),可以通過下列步驟啟用 HTML5:
在 FireFox 地址欄中輸入 about:config。
在出現(xiàn)警告消息的地方點擊 “I'll be careful, I promise!” 按鈕(確保遵守它)。
在頁面頂部的過濾器中輸入 html5.enable。
默認(rèn)可能被禁用了,因此要點擊它切換它的值為 true。
【四、實際案例】
1. SVG 圓
下面是一個 SVG 示例的 HTML5 版本,用 <circle> 標(biāo)簽繪制一個圓:
<!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 中會生成如下結(jié)果:
2. SVG 矩形
下面是一個 SVG 示例的 HTML5 版本,用 <rect> 標(biāo)簽繪制一個矩形:
<!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 中會生成如下結(jié)果:
3. SVG 線條
下面是一個 SVG 示例的 HTML5 版本,用 <line> 標(biāo)簽繪制一個線條:
<!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 屬性給它設(shè)置額外的樣式信息,比如筆畫,填充色,筆畫寬度等等。
在啟用 HTML5 的最新版 FireFox 中會生成如下結(jié)果:
便于學(xué)習(xí)這一概念 - 請使用 FireFox 3.7 或更高的版本進行在線練習(xí)。
4. SVG 橢圓
下面是一個 SVG 示例的 HTML5 版本,用 <ellipse> 標(biāo)簽繪制一個橢圓:
<!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 中會生成如下結(jié)果:
便于學(xué)習(xí)這一概念 - 請使用 FireFox 3.7 或更高的版本進行在線練習(xí)。
5. SVG 多邊形
下面是一個 SVG 示例的 HTML5 版本,用 <polygon> 標(biāo)簽繪制一個多邊形:
<!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 中會生成如下結(jié)果:
6. SVG 折線
<polyline> 元素用于繪制連接的直線。下面是一個 SVG 示例的 HTML5 版本,用 <polyline> 標(biāo)簽繪制一個折線圖:
<html>
<title>SVG折線</title>
<body>
<h1>簡單SVG折線圖片</h1>
<svg width="800" height="800">
<g>
<text x="0" y="15" fill="black" >Polyline #1: Without opacity.</text>
<polyline points="150,75 258,137.5 258,262.5 150,325 42,262.6 42,137.5"
stroke="black" stroke-width="3" fill="none"></polyline>
</g>
</svg>
</body>
</html>
在啟用 HTML5 的最新版 FireFox 中會生成如下結(jié)果:
7. SVG 漸變
下面是一個 SVG 示例的 HTML5 版本,用 <ellipse> 標(biāo)簽繪制一個橢圓,使用 <radialGradient> 標(biāo)簽定義一個 SVG 徑向漸變。
我們可以以類似的方式用 <linearGradient> 標(biāo)簽創(chuàng)建 SVG 線性漸變。
<!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(255,0,0);
<!--顏色為紅-->
stop-opacity:1" />
</radialGradient>
</defs>
<ellipse cx="100" cy="50" rx="100" ry="50" style="fill:url(#gradient)" />
</svg>
</body>
</html>
在啟用 HTML5 的最新版 FireFox 中會生成如下結(jié)果:
【五、總結(jié)】
1、講解了Html中svg,對于遇到的一些難點進行了分析及提供解決方案。歡迎大家積極嘗試,有時候看到別人實現(xiàn)起來很簡單,但是到自己動手實現(xiàn)的時候,總會有各種各樣的問題,切勿眼高手低,勤動手,才可以理解的更加深刻。
2、代碼很簡單,希望對你學(xué)習(xí)有幫助。
看完本文有收獲?請轉(zhuǎn)發(fā)分享給更多的人
IT共享之家
聯(lián)系客服