SVG 和 HTML5 Canvas 有什么区别?
htmlweb developmentfront end technology更新于 2026/1/17 19:56:17
HTML 中的 <svg> 元素是 SVG 图形的容器。SVG 代表可缩放矢量图形 (Scalable Vector Graphics)。SVG 可用于定义诸如框、圆形、文本等图形。SVG 是一种使用 XML 描述二维图形和图形应用程序的语言,XML 文件随后由 SVG 查看器进行渲染。大多数 Web 浏览器可以像显示 PNG、GIF 和 JPG 一样显示 SVG。
HTML 中的 <canvas> 元素用于通过 JavaScript 绘制图形。<canvas>元素是图形的容器。
| SVG | HTML Canvas |
|---|---|
| SVG 具有更好的可扩展性。因此它可以在任何分辨率下高质量地打印。 | Canvas 的可扩展性较差。因此,它不适合在更高分辨率下打印。 |
| SVG 在对象数量较少或表面较大时性能更佳。 | Canvas 在表面较小或对象数量较多时性能更佳。 |
| SVG 可以通过脚本和 CSS 进行修改。 | Canvas 只能通过脚本进行修改。 |
| SVG 是基于矢量的,由形状组成。 | Canvas 是基于光栅的,由像素组成。 |
示例
您可以尝试运行以下代码来添加可缩放矢量图形(SVG)到网页 −
<!DOCTYPE html>
<html>
<head>
<style>
#svgelem {
position: relative;
left: 50%;
-webkit-transform: translateX(-20%);
-ms-transform: translateX(-20%);
transform: translateX(-20%);
}
</style>
<title>HTML5 SVG</title>
</head>
<body>
<h2 align = "center">HTML5 SVG Circle</h2>
<svg id = "svgelem" height = "200" xmlns = "http://www.w3.org/2000/svg">
<circle id = "bluecircle" cx = "60" cy="60" r = "50" fill = "blue" />
</svg>
</body>
</html>
示例
您可以尝试运行以下代码来学习如何使用 HTML5 Canvas 绘制矩形 −
<!DOCTYPE html>
<html>
<head>
<title>HTML5 Canvas Tag</title>
</head>
<body>
<canvas id = "newCanvas" width = "200" height = "100" style = "border:1px solid #000000;"></canvas>
<script>
var c = document.getElementById('newCanvas');
var ctx = c.getContext('2d');
ctx.fillStyle = '#7cce2b';
ctx.fillRect(0,0,300,100);
</script>
</body>
</html>
相关文章
有用资源
html 参考教程 - 该教程包含有关 html 的更多信息:https://www.cainiaomax.com/html/

