SVG 和 HTML5 Canvas 之间有什么区别?


HTML 的 <svg> 元素是 SVG 图形的容器。SVG 代表可缩放矢量图形。SVG 可用于定义图形,例如框、圆形、文本等。SVG 代表可缩放矢量图形,它是一种使用 XML 描述二维图形和图形应用程序的语言,然后由 SVG 查看器呈现该 XML。大多数 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>

更新于: 2020-06-01

9K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.