Raphael js用的是canvas还是svg?

Does Raphael js uses canvas or svg?

正如在 Raphael Js 的 Home page 上看到的那样:

Raphaël is a small JavaScript library that should simplify your work with vector graphics on the web.

Raphaë uses the SVG W3C Recommendation and VML as a base for creating graphics.

但是在创建 Raphael 对象时 LINK:

它说:

Creates a canvas object on which to draw. You must do this first, as all future calls to drawing methods from this instance will be bound to this canvas

我很困惑它是使用 canvas 还是 svg,因为 canvas 使用光栅类型格式,与使用路径绘制和记住形状作为场景图或文档的 SVG 相比,缩放时像素会缩小对象模型。

Raphael 使用 SVG 元素,它不使用 Canvas(根本不在任何地方)。它可以使用 VML 来支持旧版浏览器。

只是有时人们用于主要 Raphael 元素的变量名称是 paper 或 canvas(Raphael 将其论文称为 canvas,这令人困惑),正如它所描述的那样嗯

如果我们看看 Raphael 对象本身的底层是什么,我们可以看一眼(我假设在一个非常老的 IE 上它可能看起来有点不同并且是 VML)..

var paper = new Raphael('mydiv', 100, 100);
console.log( paper.canvas );

显示

<svg height="100" version="1.1" width="100" xmlns="http://www.w3.org/2000/svg" style="overflow: hidden; position: relative;">

  <desc style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">Created with Raphaël 2.1.0</desc>  
  <defs style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">

  </defs>
</svg>