SVG的替代方案是什么?

9

我在谷歌搜索时看到有人说SVG已经"死亡"。虽然我不同意这种观点,但是有没有人能告诉我更多关于未来的基于矢量的2D / 3D图形格式?VML呢?在Web上表示2D和3D图形应该使用什么格式?

我正在网页上尝试制作图形,并想知道我是否在使用过时的技术。


1
@James Black不能使用HTML5画布,因为它不是矢量图,而是位图。(除了我需要的其他功能)那还有什么其他更好的选择,除了VML? - ESP
9
我会为死亡声明要求一个"[需要引用]"。虽然值得承认的是,SVG并没有像应该支持的那样广泛,但支持它的情况仍在缓慢增加(即使IE9也会有它,这是相当不错的事情 ;))。 - deceze
1
请看这个相关问题:https://dev59.com/AHNA5IYBdhLWcg3wSrqa 虽然它已经过去一年了,但我认为它仍然相关。自从微软加入W3C SVG WG以来,IE可能会支持SVG。 - musiKk
然后,基于这两个原因...我接受并关闭这个问题(发表一个答案来关闭它吧,伙计们!) - ESP
是的,SVG并没有死亡。相反,我会说它正在被越来越多的应用所使用。 - Glenn Howes
显示剩余3条评论
6个回答

9

微软正在支持IE9中的SVG,并在IE博客上详细解释了为什么要这样做:

http://blogs.msdn.com/b/ie/archive/2010/03/18/svg-in-ie9-roadmap.aspx

SVG的主要优势在于它成为DOM的一部分,因此您可以使用CSS对其进行样式设置,使用JavaScript进行修改。相比之下,Canvas必须完全重绘每一帧。这使得Canvas适用于频谱分析仪、视频处理、快节奏游戏和其他非渐进动画。SVG更适合于渐进动画。

就3D而言,未来是WebGL,它是OpenGL ES的薄包装层,但它还有很长的路要走。微软没有承诺支持它,这意味着它不会出现在IE9中。也许会在IE10中,也许不会。

如果您使用SVG,我建议使用svgweb来抽象浏览器之间的差异(在过时的浏览器上回退到Flash applet)。


显然,这个问题和答案现在只有出于历史原因才有趣。只需使用SVG人物,无需任何库。 - undefined

6
你可以尝试使用JavaScript库Raphaël
它易于实现,提供了与SVG相同的UI功能(甚至更多!)。

那个链接已经失效了。有一个www.raphaeljs.com,它重定向到GitHub.io。最后一次提交是在2017年2月,这是比较近的,看起来它仍在积极开发中。此外,它看起来非常有趣! - harperville

6
如果您需要使用SVG,则最好的选择是svg.js。它对SVG的支持更好,并且体积只有Raphaël(经过gzip压缩后31k)的一小部分(只有4.5k)。它还具有非常直观的语法。

6

这篇文章来得有点晚了......但我认为它值得重新讨论一下,因为随着所有HTML5的谈话,你的问题再次出现。

SVG是一种矢量绘图格式,也支持动画、时间和Javascript DOM支持。换句话说,它是一个静态和动态矢量图形的独立格式;你可以说它是EPS/PDF的面向web(或屏幕)的替代品。HTML5画布标签并不是一个格式,而是一种用Javascript绘制(静态图像)到屏幕上的方式 - 就是这样; 它与SVG之间没有竞争,因为它们具有完全不同的目的。

大多数其他矢量“格式”涉及插件(Flash)或硬件支持(WebGL)。具有讽刺意味的是,你提到的VML格式现在已被弃用,转而采用SVG。

回答你的问题:SVG现在是web上的标准矢量格式。希望在不久的将来,我们也能看到它被用于视频/动画。


5

所有主流浏览器,包括ie9、Firefox、Safari和Chrome都开始支持SVG作为即将到来的HTML5标准的一部分。我不会将其称为“死亡”。


3

2D:SVG
3D:直接使用X3DOM或webGL


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接