让透明的SVG在IE和Safari中都能运行?

时间:2011-09-22 06:23:54

标签: xml internet-explorer xhtml safari svg

这似乎是对我或两者。我可以让他们在其中一个或另一个工作,但不是两个(在Firefox中工作正常,无论我怎么做)。

我已经在这个主题上阅读了很多内容,除非它已经被Safari修复过,看起来很平坦外部的svg不支持,并且当它们具有透明度并且你想看时它们在Safari中无法正确呈现下面的其他元素。唯一的解决方案是将svg内联到你的html中,它运行正常。当然要做到这一点,它必须是xhtml,不受IE 9的支持。

如果我在这两个方面都错了,请纠正我,但我非常喜欢使用SVG及其拥有的功能,但就在今天,我使用一小块SVG数据再次使用IE和Safari测试了这些问题,它在firefox中内联和外部工作,并且在外部时不能在Safari中工作,当然也不能在IE< = 8的xhtml中内联工作。

我没有看到一个简单的方法来解决上面给出的解决方案,而没有以完全不同的方式制作两个单独的网站。显然最好的机会似乎在于让外部svg文件与Safari一起工作,有没有人知道我还没有读过的任何技巧?关于这个问题似乎并不多。

干杯

1 个答案:

答案 0 :(得分:3)

Safari / Chrome / FF / IE9上的

This demo works。 SVG在earlier versions of IE中不起作用(嵌入或引用),因此无法在那里工作。

简而言之:

  • 将您的文档作为XHTML
  • 使用正确的命名空间将SVG直接嵌入其中。
<html xmlns="http://www.w3.org/1999/xhtml"><head>
  <meta http-equiv="content-type"
        content="application/xhtml+xml; charset=utf-8" />
  <title>Transparent SVG</title>
</head><body>
  <svg xmlns="http://www.w3.org/2000/svg">
    <!--
      this SVG will have a transparent background 
      and blend over any content below it.
    -->
  </svg>
</body></html>