HTML SVG 图形
SVG(可缩放矢量图形)
SVG 定义 XML 中的矢量图形,可直接嵌入 HTML 页面。
SVG 图形是可缩放的,在缩放或调整大小时不会丢失任何质量
SVG 受所有主要浏览器支持。
什么是 SVG?
- SVG 代表可缩放矢量图形
- SVG 用于定义 Web 的矢量图形
- SVG 以 XML 格式定义图形
- SVG 文件中的每个元素和属性都可以设置动画
- SVG 是 W3C 的推荐标准
- SVG 与其他标准集成,如 CSS、DOM、XSL 和 JavaScript
the <svg> 元素
HTML <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 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 中的每个元素都可用。您可以为 SVG 图形附加 JavaScript 事件处理程序。
在 SVG 中,每个绘制的形状都被记为一个对象。如果 SVG 对象的属性发生更改,浏览器可以自动重新渲染形状。
Canvas 是逐像素渲染的。在 Canvas 中,一旦图形被绘制,浏览器就会将其遗忘。如果需要更改其位置,则必须重绘整个场景,包括可能被该图形覆盖的任何对象。
SVG 和 Canvas 的比较
下表显示了 Canvas 和 SVG 之间的一些重要区别
SVG | 画布 |
---|---|
|
|
SVG 教程
要了解更多关于 SVG 的信息,请阅读我们的 SVG 教程。