什么是 SVG?

SVG 指可伸缩矢量图形 (Scalable Vector Graphics)
SVG 用于定义用于网络的基于矢量的图形
SVG 使用 XML 格式定义图形
SVG 图像在放大或改变尺寸的情况下其图形质量不会有损失
SVG 是万维网联盟的标准

SVG 圆形

要使用 SVG 绘制图形,你首先需要创建一个 <svg> 标签。

<svg width="1000" height="1000"></svg>

要创建一个圆形,需要添加一个 <circle> 标签。
下面是 SVG 代码:

<svg width="1000" height="1000"><circle cx="100" cy="50" r="40" fill="blue" />
</svg>

cx和cy属性定义圆点的x和y坐标。如果省略cx和cy,圆的中心会被设置为 (0, 0)。
r属性定义圆的半径。
运行显示结果如下图:

SVG 其他形状元素

我们来看看 SVG 一些预定义的其他形状元素:

SVG 矩形 - <rect>

<rect> 标签可用来创建矩形,以及矩形的变种。

<svg width="1000" height="1000"><rect width="400" height="200" x="20" y="20" fill="red" />
</svg>

运行显示结果如下图:

SVG 直线 - <line>

<line> 标签是用来创建一个直线。

<svg width="500" height="510"><line x1="20" y1="20" x2="300" y2="200" style="stroke:#000000; stroke-linecap:round; stroke-width:20"  />
</svg>

运行显示结果如下图:

SVG 曲线 - <polyline>

<polyline> 标签是用于创建任何只有直线的形状。<svg width="2000" height="500"><polyline style="stroke-linejoin:miter; stroke:black; stroke-width:12; fill: none;"points="100 100, 150 150, 200 100" />
</svg>

运行显示结果如下图:

SVG 椭圆、多边形
SVG 椭圆 - <ellipse>

<ellipse> 标签是用来创建一个椭圆。

椭圆与圆很相似。不同之处在于椭圆有不同的x和y半径,而圆的x和y半径是相同的。

<svg width="500" height="250"><ellipse cx="200" cy="100" rx="150" ry="70" style="fill:red" />
</svg>

运行显示结果如下图:

SVG 多边形 - <polygon>

<polygon> 标签用来创建含有不少于三个边的图形。

<svg width="1000" height="1000">
<polygon points="100 100, 200 200, 300 0" style="fill: red; stroke:black;" />
</svg>

运行显示结果如下图:

SVG 动画

SVG 动画可以使用 <animate> 元素创建。

实例
创建一个矩形,将在3秒内更改其位置,然后重复动画两次:

<svg width="1000" height="250">
<rect width="150" height="150" fill="orange"><animate attributeName="x" from="0" to="300"dur="3s" fill="freeze" repeatCount="2"/>
</rect>
</svg>

attributeName:指定哪个属性需要产生动画效果

from:指定属性的起始值

to:指定属性的结束值

dur:指定动画运行的时间(持续时间)

fill=“freeze|remove”:指定动画播放完毕后是停留在播放的终点还是回到起始位置

repeatCount:指定动画的重复播放次数

在上面的例子中,矩形在3秒内将其x属性从0更改为300。

要无限重复动画,请使用值 “indefinite” 作为 repeatCount 属性。

SVG 路径

<path> 元素用于定义一个路径。

下面的命令可用于路径数据:

M = moveto
L = lineto
H = horizontal lineto
V = vertical lineto
C = curveto
S = smooth curveto
Q = quadratic Bézier curve
T = smooth quadratic Bézier curveto
A = elliptical Arc
Z = closepath

注意:以上所有命令均允许小写字母。大写表示绝对定位,小写表示相对定位。

实例

<svg width="500" height="500"><path d="M150 0 L75 200 L225 200 Z" />
</svg>

上面的例子定义了一条路径,它开始于位置150 0,到达位置75 200,然后从那里开始到225 200,最后在150 0关闭路径。

HTML5中的SVG是什么?相关推荐

  1. html5声明utf-8,HTML5中的SVG – 什么时候是XML声明`?xml version =“1.0”encoding =“UTF-8”?`需要吗?...

    对于HTML5,正确的 DOCTYPE declaration是 需要为浏览器指定完整标准模式. 你所展示的, > XML 1.1没有得到广泛使用. 无论如何,> version =&qu ...

  2. svg如何平铺 html5,如何在HTML5中使用SVG

    SVG 即 Scalable Vector Graphics,是一种用来绘制矢量图的 HTML5 标签.你只需定义好XML属性,就能获得一致的图像元素. 使用SVG之前先将标签加入到HTML body ...

  3. 如何在Html5中画SVG(矢量图)

    什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用于定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 SVG 图像在放大或改变尺 ...

  4. HTML5 中 40 个最重要的技术点

    我是一个ASP.NET MVC的开发者,最近在我找工作的时候被问到很多与HTML5相关的问题和新特性.所以以下40个重要的问题将帮助你复习HTML5相关的知识. 这些问题不是你得到工作的高效解决方案, ...

  5. html中svg的css,HTML5 内联 SVG

    什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用于定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 SVG 图像在放大或改变尺 ...

  6. html可以用坐标画svg图吗,HTML5如何使用SVG的方法示例

    代码优化永远是程序员亘古不变的需求,而合理的利用SVG图片来代替部分PNG/JPG等格式的图片则是前端优化重要的一环,既然是优化,那我们先来看看SVG图片都有哪些优势: SVG 可被非常多的工具读取和 ...

  7. HTML5 Canvas vs. SVG vs. div

    本文翻译自:HTML5 Canvas vs. SVG vs. div What is the best approach for creating elements on the fly and be ...

  8. HTML5中最重要的技术点有哪些

    HTML5在发展中不断的更新其自身技术,所以即便是HTML5从业者也会需要不断的去学习.掌握其新特性.本文总结一些HTML5中重要的技术点,希望对你有帮助. 为什么HTML5里面我们不需要DTD(Do ...

  9. html5 加载svg,HTML5 SVG应用(1)——loading效果

    先看一下效果: 链接 代码: y="0px" width="40px" height="40px" viewBox="0 0 40 ...

  10. HTML5中绘制图形

    介绍HTML5中的一个新增元素--canvas元素以及伴随这个元素而来的一套编程接口--canvas API. 使用canvas API可以在页面上绘制出任何你想要的.非常漂亮的图形与图像,创造出更加 ...

最新文章

  1. Linq基础知识小记二
  2. [转]WxEmojiView
  3. AlwaysOn只读路由配置
  4. 用计算机进行图片处理教学设计,三年级信息技术上教学设计
  5. java 入门 第二季3
  6. 从底层重学 Java 之 Stream 并行及标志 GitChat连接
  7. 元气骑士如何获得机器人成就皮肤_元气骑士:获得成就叹息之墙,花圃免费开,附带5000蓝币奖励...
  8. 计算机系统建模与仿真论文,计算机模拟 仿真论文.doc
  9. ​领域模型vs数据模型,应该怎么用?
  10. 机械振动的傅里叶变化分析技术
  11. 计算机控制实验室装置,自控/计控原理实验箱
  12. 大数据组项目文档整理方案
  13. 微信小程序npm引用ui框架
  14. 五子棋等级考试软件的开发(五)
  15. M26X2 4G工业路由器的技术应用
  16. macOS 13 Ventura系统自动开机在哪设置?
  17. 如何培养孩子的记忆力?猿辅导:这个方法家长一定要知道
  18. VMware Workstation 中安装CentOS-7-x84_64-DVD-1708.iso
  19. Python的正则表达式和re模块
  20. 请问肾阴虚吃什么药?饮食注意什么?还有桂附地黄丸是治肾阴虚还是治肾阳虚的?谢谢...

热门文章

  1. VMwarenbsp;vSpherenbsp;ESXiamp;nb…
  2. axure文件如何加密_axure怎么锁定位置
  3. WWW 2022最佳论文出炉!北京大学团队获唯一最佳学生论文奖
  4. Python项目实战:爬取糗事百科最热门的内涵搞笑段子
  5. Windows 11 v22000.318 11月更新版
  6. 从修复 testerhome(rubychina)网站的一个 bug 学习 rubyrails on ruby
  7. 高等数学(第七版)同济大学 习题7-2 个人解答
  8. 什么是telemetry
  9. jquery 立体走马灯_CSS3超酷3D文字跑马灯特效
  10. 【STM32Cube_14】使用硬件I2C读写环境光强度传感器(BH1750)