⼀篇⽂章教会你使⽤HTML5SVG标签
【⼀、项⽬背景】
SVG 表⽰可伸缩⽮量图形,这是⼀门⽤于描述 2D 图形的语⾔,图形应⽤使⽤ XML 编写,然后 XML 由 SVG 阅读器程序呈现。⽀持三种类型的图形对象:⽮量图形形状(例如,由直线和曲线组成的路径),图像和⽂本。图形对象可以进⾏分组,样式设置,转换和合成。功能集包括嵌套转换,剪切路径,Alpha蒙版,滤镜效果和模板对象。。
SVG 在 2003 年 1 ⽉ 14 ⽇成为 W3C 推荐标准,你可以在 SVG 规范页⾯中查看最新版本的 SVG 规范。
【⼆、怎么查看 SVG ⽂件?】
⼤多数 Web 浏览器都可以显⽰ SVG,就像它们可以显⽰ PNG,GIF 以及 JPG 图形。IE ⽤户可能需要安装 Adobe SVG 阅读器以便能够在浏览器中查看SVG。
【三、HTML5 中嵌⼊ SVG】
HTML5 允许我们直接使⽤ _... 标签嵌⼊ SVG,
简单的语法:
<svg xmlns="/2000/svg">
</svg>
拓展:
FireFox 3.7 还引⼊了⼀个配置选项("about:config"),可以通过下列步骤启⽤ HTML5:
1. 在 FireFox 地址栏中输⼊ about:config。
2. 在出现警告消息的地⽅点击 “I'll be careful, I promise!” 按钮(确保遵守它)。
3. 在页⾯顶部的过滤器中输⼊ able。
4. 默认可能被禁⽤了,因此要点击它切换它的值为 true。
【四、实际案例】
1. SVG 圆
下⾯是⼀个 SVG ⽰例的 HTML5 版本,⽤标签绘制⼀个圆:
<!DOCTYPE html>
<head>
<title>SVG</title>
<meta charset="utf-8" />
</head>
<body>
<h2>HTML5 SVG Circle</h2>
<svg id="svgelem" height="200" xmlns="/2000/svg">
<circle id="redcircle" cx="50" cy="50" r="50" fill="red" />
</svg>
</body>
</html>
启⽤ HTML5 的最新版 FireFox 中会⽣成如下结果:
2. SVG 矩形
下⾯是⼀个 SVG ⽰例的 HTML5 版本,⽤标签绘制⼀个矩形:
<!DOCTYPE html>
<head>
<title>SVG</title>
<meta charset="utf-8" />
</head>
<body>
<h2>HTML5 SVG Rectangle</h2>
<svg id="svgelem" height="200" xmlns="/2000/svg">
<rect id="redrect" width="300" height="100" fill="red" />
</svg>
</body>
</html>
在启⽤ HTML5 的最新版 FireFox 中会⽣成如下结果:
3. SVG 线条
下⾯是⼀个 SVG ⽰例的 HTML5 版本,⽤标签绘制⼀个线条:
<!DOCTYPE html>
html5开发示例
<head>
<title>SVG</title>
<meta charset="utf-8" />
</head>
<body>
<h2>HTML5 SVG Line</h2>
<svg id="svgelem" height="200" xmlns="/2000/svg">
<line x1="0" y1="0" x2="200" y2="100"
/>
</svg>
</body>
</html>
你可以使⽤ style 属性给它设置额外的样式信息,⽐如笔画,填充⾊,笔画宽度等等。在启⽤ HTML5 的最新版 FireFox 中会⽣成如下结果:
便于学习这⼀概念 - 请使⽤ FireFox 3.7 或更⾼的版本进⾏在线练习。
4. SVG 椭圆
下⾯是⼀个 SVG ⽰例的 HTML5 版本,⽤标签绘制⼀个椭圆:
<!DOCTYPE html>
<head>
<title>SVG</title>
<meta charset="utf-8" />
</head>
<body>
<h2>HTML5 SVG Ellipse</h2>
<svg id="svgelem" height="200" xmlns="/2000/svg">
<ellipse cx="100" cy="50" rx="100" ry="50" fill="red" />
</svg>
</body>
</html>
在启⽤ HTML5 的最新版 FireFox 中会⽣成如下结果:
便于学习这⼀概念 - 请使⽤ FireFox 3.7 或更⾼的版本进⾏在线练习。
5. SVG 多边形
下⾯是⼀个 SVG ⽰例的 HTML5 版本,⽤标签绘制⼀个多边形:
<!DOCTYPE html>
<head>
<title>SVG</title>
<meta charset="utf-8" />
</head>
<body>
<h2>HTML5 SVG Polygon</h2>
<svg id="svgelem" height="200" xmlns="/2000/svg">
<polygon  points="20,10 300,20, 170,50" fill="red" />
</svg>
</body>
</html>
启⽤ HTML5 的最新版 FireFox 中会⽣成如下结果:
6. SVG 折线
元素⽤于绘制连接的直线。下⾯是⼀个 SVG ⽰例的 HTML5 版本,⽤标签绘制⼀个折线图:<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 中会⽣成如下结果:
7. SVG 渐变
下⾯是⼀个 SVG ⽰例的 HTML5 版本,⽤标签绘制⼀个椭圆,使⽤标签定义⼀个 SVG 径向渐变。
我们可以以类似的⽅式⽤标签创建 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="/2000/svg">
<defs>
<radialGradient id="gradient" cx="50%" cy="50%" r="50%" fx="50%" fy="50%">
<stop offset="0%" />
<stop offset="100%" />
</radialGradient>
</defs>
<ellipse cx="100" cy="50" rx="100" ry="50" />
</svg>
</body>
</html>
在启⽤ HTML5 的最新版 FireFox 中会⽣成如下结果:
【五、总结】
1、讲解了Html中svg,对于遇到的⼀些难点进⾏了分析及提供解决⽅案。欢迎⼤家积极尝试,有时候看到别⼈实现起来很简单,但是到⾃⼰动⼿实现的时候,总会有各种各样的问题,切勿眼⾼⼿低,勤动⼿,才可以理解的更加深刻。
2、代码很简单,希望对你学习有帮助。