作者:咕噜噜噜lu | 来源:互联网 | 2023-01-29 14:51
一、项目背景SVG表示可伸缩矢量图形,这是一门用于描述2D图形的语言,图形应用使用XML编写,然后XML由SVG阅读器程序呈现。支持三种类型的图形对象:矢量图形形状(例如,由直线和
一、项目背景
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="http://www.w3.org/2000/svg">
svg>
拓展:
FireFox 3.7 还引入了一个配置选项("about:config"),可以通过下列步骤启用 HTML5:
-
在 FireFox 地址栏中输入 about:config。
-
在出现警告消息的地方点击 “I'll be careful, I promise!” 按钮(确保遵守它)。
-
在页面顶部的过滤器中输入 html5.enable。
-
默认可能被禁用了,因此要点击它切换它的值为 true。
-
http://www.ssnd.com.cn 化妆品OEM代加工
四、实际案例
1. SVG 圆
下面是一个 SVG 示例的 HTML5 版本,用 标签绘制一个圆:
html>
<head>
<title>SVGtitle>
<meta charset="utf-8" />
head>
<body>
<h2>HTML5 SVG Circleh2>
<svg id="svgelem" hljs-string">"200" xmlns="http://www.w3.org/2000/svg">
<circle id="redcircle" cx="50" cy="50" r="50" fill="red" />
svg>
body>
html>
启用 HTML5 的最新版 FireFox 中会生成如下结果:
2. SVG 矩形
下面是一个 SVG 示例的 HTML5 版本,用 标签绘制一个矩形:
html>
<head>
<title>SVGtitle>
<meta charset="utf-8" />
head>
<body>
<h2>HTML5 SVG Rectangleh2>
<svg id="svgelem" hljs-string">"200" xmlns="http://www.w3.org/2000/svg">
<rect id="redrect" hljs-string">"300" hljs-string">"100" fill="red" />
svg>
body>
html>
在启用 HTML5 的最新版 FireFox 中会生成如下结果:
3. SVG 线条
下面是一个 SVG 示例的 HTML5 版本,用 标签绘制一个线条:
html>
<head>
<title>SVGtitle>
<meta charset="utf-8" />
head>
<body>
<h2>HTML5 SVG Lineh2>
<svg id="svgelem" hljs-string">"200" xmlns="http://www.w3.org/2000/svg">
<line x1="0" y1="0" x2="200" y2="100"
hljs-string">"stroke:red;stroke-width:2"/>
svg>
body>
html>
你可以使用 style 属性给它设置额外的样式信息,比如笔画,填充色,笔画宽度等等。
在启用 HTML5 的最新版 FireFox 中会生成如下结果:
便于学习这一概念 - 请使用 FireFox 3.7 或更高的版本进行在线练习。
4. SVG 椭圆
下面是一个 SVG 示例的 HTML5 版本,用 标签绘制一个椭圆:
html>
<head>
<title>SVGtitle>
<meta charset="utf-8" />
head>
<body>
<h2>HTML5 SVG Ellipseh2>
<svg id="svgelem" hljs-string">"200" xmlns="http://www.w3.org/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 版本,用 标签绘制一个多边形:
html>
<head>
<title>SVGtitle>
<meta charset="utf-8" />
head>
<body>
<h2>HTML5 SVG Polygonh2>
<svg id="svgelem" hljs-string">"200" xmlns="http://www.w3.org/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 hljs-string">"800" hljs-string">"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-hljs-string">"3" fill="none">polyline>
g>
svg>
body>
html>
在启用 HTML5 的最新版 FireFox 中会生成如下结果:
7. SVG 渐变
下面是一个 SVG 示例的 HTML5 版本,用 标签绘制一个椭圆,使用 标签定义一个 SVG 径向渐变。
我们可以以类似的方式用 标签创建 SVG 线性渐变。
html>
<head>
<title>SVGtitle>
<meta charset="utf-8" />
head>
<body>
<h2>HTML5 SVG Gradient Ellipseh2>
<svg id="svgelem" hljs-string">"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%" hljs-string">"stop-color:rgb(200,200,200);
stop-opacity:0" />
<stop offset="100%" hljs-string">"stop-color:rgb(255,0,0);
stop-opacity:1" />
radialGradient>
defs>
<ellipse cx="100" cy="50" rx="100" ry="50" hljs-string">"fill:url(#gradient)" />
svg>
body>
html>
在启用 HTML5 的最新版 FireFox 中会生成如下结果:
五、总结
讲解了Html中svg,对于遇到的一些难点进行了分析及提供解决方案。欢迎大家积极尝试,有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。