svg学习之旅(1)

时间:2024-11-06 22:34:39

Canvas 与 SVG 的比较

下表列出了 canvas 与 SVG 之间的一些不同之处。

Canvas

  • 依赖分辨率
  • 不支持事件处理器
  • 弱的文本渲染能力
  • 能够以 .png 或 .jpg 格式保存结果图像
  • 最适合图像密集型的游戏,其中的许多对象会被频繁重绘

SVG

  • 不依赖分辨率
  • 支持事件处理器
  • 最适合带有大型渲染区域的应用程序(比如谷歌地图)
  • 复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)
  • 不适合游戏应用

SVG 格式

  基于xml的写法

  <?xml version="1.0" encoding="utf-8"?>

    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
  <svg xmlns="http://www.w3.org/2000/svg">

    <circle cx="100" cy="100" r="40" fill="red"></circle>

  </svg>

  ***xmlns="http://www.w3.org/2000/svg"  必须写的命名空间

 SVG引入方式

  1.通过html 图片、背景、iframe引入外链的svg

  例如:

    <img src="svg.svg">

    <div style="height:200px; width:200px; background:url(svg.svg) no-repeat"></div>

    <iframe src="svg.svg"></iframe>

  2.直接在html中写svg

  例如:

    <div id="div1">

      <svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%">
        <circle cx="100" cy="100" r="40" fill="red"></circle>
      </svg>
    </div>