前端必知必会-html svg


HTML SVG 图形

SVG(可缩放矢量图形)
SVG 在 XML 中定义基于矢量图形,可直接嵌入 HTML 页面。

SVG 图形是可缩放的,即使缩放或调整大小也不会损失任何质量:

所有主流浏览器都支持 SVG。

什么是 SVG?

SVG 代表可缩放矢量图形
SVG 用于为 Web 定义基于矢量图形
SVG 以 XML 格式定义图形
SVG 文件中的每个元素和属性都可以动画化
SVG 是 W3C 推荐标准
SVG 与其他标准集成,例如 CSS、DOM、XSL 和 JavaScript

<svg> 元素

HTML <svg> 元素是 SVG 图形的容器。

SVG 有多种方法可用于绘制路径、矩形、圆形、多边形、文本等。

SVG圆形

SVG 圆形

示例

<!DOCTYPE html>
<html>
<body>

<svg width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>

</body>
</html>

SVG 矩形

在这里插入图片描述

示例

<svg width="400" height="120">
<rect x="10" y="10" width="200" height="100" stroke="red" stroke-width="6" fill="blue" />
</svg>

具有不透明度和圆角的 SVG 矩形

在这里插入图片描述

示例

<svg width="400" height="180">
<rect x="50" y="20" rx="20" ry="20" width="150" height="150"
style="fill:red;stroke:black;stroke-width:5;opacity:0.5" />
</svg>

SVG 星形

在这里插入图片描述

示例

<svg width="300" height="200">
<polygon points="100,10 40,198 190,78 10,78 160,198"
style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" />
</svg>

SVG 渐变椭圆和文本

在这里插入图片描述

SVG
示例

<svg height="130" width="500">
<defs>
<linearGradient id="grad1">
<stop offset="0%" stop-color="yellow" />
<stop offset="100%" stop-color="red" />
</linearGradient>
</defs>
<ellipse cx="100" cy="70" rx="85" ry="55" fill="url(#grad1)" />
<text fill="#ffffff" font-size="45" font-family="Verdana" x="50" y="86">SVG</text>
抱歉,您的浏览器不支持内联 SVG。
</svg>

SVG 和 Canvas 之间的区别

SVG 是一种用 XML 描述 2D 图形的语言,而 Canvas 则使用 JavaScript 动态绘制 2D 图形。

SVG 基于 XML,这意味着每个元素都可以在 SVG DOM 中使用。您可以将 JavaScript 事件处理程序附加到 SVG 图形。

在 SVG 中,每个绘制的形状都被记住为一个对象。如果更改了 SVG 对象的属性,浏览器可以自动重新呈现该形状。

Canvas 是逐像素渲染的。在 Canvas 中,一旦图形被绘制,浏览器就会忘记它。如果要更改其位置,则需要重新绘制整个场景,包括图形可能覆盖的任何对象。

SVG 与 Canvas 的比较

下表显示了 Canvas 与 SVG 之间的一些重要区别:

SVGCanvas
独立于分辨率依赖分辨率
支持事件处理程序不支持事件处理程序
良好的文本渲染能力文本渲染能力差
如果复杂则渲染速度慢您可以将生成的图像保存为 .png 或 .jpg
不适合游戏应用程序非常适合图形密集型游戏

总结

本文介绍了的html svg使用,如有问题欢迎私信和评论

  • 24
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程岁月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值