一篇文章教会你使用HTML5 SVG 标签

简介: 一篇文章教会你使用HTML5 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>

image.png

拓展:

FireFox 3.7 还引入了一个配置选项("about:config"),可以通过下列步骤启用 HTML5:

在 FireFox 地址栏中输入 about:config。

在出现警告消息的地方点击 “I'll be careful, I promise!” 按钮(确保遵守它)。

在页面顶部的过滤器中输入 html5.enable。

默认可能被禁用了,因此要点击它切换它的值为 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="http://www.w3.org/2000/svg">    <circle id="redcircle" cx="50" cy="50" r="50" fill="red" /></svg></body></html>

启用 HTML5 的最新版 FireFox 中会生成如下结果:

image.png


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="http://www.w3.org/2000/svg">    <rect id="redrect" width="300" height="100" fill="red" /></svg></body></html>

在启用 HTML5 的最新版 FireFox 中会生成如下结果:

image.png


3. SVG 线条

下面是一个 SVG 示例的 HTML5 版本,用  标签绘制一个线条:

<!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 中会生成如下结果:

image.png

便于学习这一概念 - 请使用 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="http://www.w3.org/2000/svg">    <ellipse cx="100" cy="50" rx="100" ry="50" fill="red" /></svg></body></html>

在启用 HTML5 的最新版 FireFox 中会生成如下结果:

image.png

便于学习这一概念 - 请使用 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="http://www.w3.org/2000/svg">    <polygon  points="20,10 300,20, 170,50" fill="red" /></svg></body></html>

启用 HTML5 的最新版 FireFox 中会生成如下结果:

image.png


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 中会生成如下结果:

image.png


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="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 中会生成如下结果:

image.png


【五、总结】


1、讲解了Html中svg,对于遇到的一些难点进行了分析及提供解决方案。欢迎大家积极尝试,有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。

2、代码很简单,希望对你学习有帮助。

相关文章
|
21天前
HTML_表单标签
HTML_表单标签
16 0
|
8天前
|
存储 前端开发 JavaScript
【Web 前端】如何找到所有 HTML select 标签的选中项?
【5月更文挑战第2天】【Web 前端】如何找到所有 HTML select 标签的选中项?
|
10天前
|
编解码 移动开发 前端开发
【专栏:HTML与CSS移动端开发篇】使用Viewport Meta标签优化移动端显示
【4月更文挑战第30天】本文介绍了HTML的Viewport Meta标签在移动端网页优化中的作用。Viewport Meta标签定义了视口属性,如宽度、高度、初始缩放等,解决移动设备因屏幕尺寸差异导致的显示问题。主要属性包括width(常用device-width)、initial-scale、maximum-scale、minimum-scale和user-scalable。
|
10天前
|
移动开发 前端开发 开发者
【专栏:HTML进阶篇】网页结构与语义化标签进阶
【4月更文挑战第30天】提升网页结构清晰度和无障碍访问性,有利于SEO。这些标签为屏幕阅读器提供额外上下文,简化CSS样式设计,避免无意义的&lt;div&gt;和&lt;span&gt;。正确使用语义化标签是现代网页开发的关键,能创造更优质、易访问和优化的Web体验。
|
12天前
|
前端开发 数据安全/隐私保护
Day-1 HTML基本标签和CSS常用样式
Day-1 HTML基本标签和CSS常用样式
|
21天前
|
前端开发 容器
HTML_块级标签
HTML_块级标签
12 0
|
21天前
HTML_行内标签
HTML_行内标签
13 0
从爬取的文章 HTML 中提取出中文关键字
分2步。 1.从 HTML 中提取出纯文本(去掉标签) import org.htmlparser.NodeFilter; import org.htmlparser.
1442 0
|
4天前
|
移动开发 前端开发 JavaScript
:掌握移动端开发:HTML5 与 CSS3 的高效实践
:掌握移动端开发:HTML5 与 CSS3 的高效实践
20 1
|
10天前
|
缓存 移动开发 前端开发
【专栏:HTML与CSS前端技术趋势篇】HTML与CSS在PWA(Progressive Web Apps)中的应用
【4月更文挑战第30天】PWA(Progressive Web Apps)结合现代Web技术,提供接近原生应用的体验。HTML在PWA中构建页面结构和内容,响应式设计、语义化标签、Manifest文件和离线页面的创建都离不开HTML。CSS则用于定制主题样式、实现动画效果、响应式布局和管理字体图标。两者协同工作,保证PWA在不同设备和网络环境下的快速、可靠和一致性体验。随着前端技术进步,HTML与CSS在PWA中的应用将更广泛。