大型SVG无法渲染......我的错?浏览器?

时间:2014-08-09 08:52:45

标签: google-chrome svg chromium

我有一个使用代码动态创建的大型SVG。 它所做路径的一个例子是:

<path id="curveAB" d="M 8307,437 S 8307,447 8451,406 8595,365 8595,375 " stroke="blue" stroke-width="3" fill="none"></path>

以前这是有效的,但我最近注意到(没有代码更改)它停止在浏览器中显示。

他们在Chrome 29和36之间停止工作,但不确定何时。

它是用于在框之间绘制箭头的系统的一部分。

你可以在这里演示完整的东西; http://darkflame.co.uk/GreenFruitEngine2/GreenFruitEnginev3.html#fruit

您需要勾选&#34; examples / exampleIndex.ntlist&#34;,点击&#34;加载索引&#34;。 然后当它的加载类型,例如&#34; Fruit&#34;并按Enter键。 你应该看到很多方框 - 如果它正在工作,它们之间会有一些线显示属性的语义继承。

如果使用chrome检查器,则可以看到保留每个SVG路径应占用的空间的框。它好像路径是可见的,但正在计算中。

我注意到它也不再适用于Firefox。 SVG标准在去年以某种方式发生了变化吗? SVG现在有尺寸限制吗?

这影响了我的一些项目,并且很难谷歌任何看似相关的东西。 我看到的另一个可能性是我一直在错误地格式化SVG,并且它通过共同发生,曾经在Chrome 29上工作正常(并且仍然存在),但从那以后Chrome已经收紧了它的SVG传球手,我的错误不再滑倒在?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您的<svg>没有宽度或高度属性。也没有通过CSS给出宽度或高度。在这种情况下,它默认为300x150。因此,对于您的页面,它隐藏在左上角。如果指定宽度和高度,则应正确显示。

<svg width="100%" height="100%">

Chrome最近改变了(即固定)其行为。这就是为什么它会停止为你工作。