梯度服务器作为SVG中的外部文件

时间:2009-07-09 13:50:57

标签: css url svg external gradient

  

可能重复:
  Include SVG file in SVG

SVG中的fill属性接受一个url来指向一个渐变/模式元素,一个所谓的“绘制服务器”的实例。

问题: 任何浏览器(当然不是IE)是否可以使用外部SVG文件中定义的渐变?比如,rect.svg

<rect fill="url(grad.svg#my_grad)" />

以及<linearGradient />中的相应grad.svg元素?

这将是非常好的,因为那时可以将他所有的渐变/模式存储在一个文件中并获得缓存...

干杯,

更新:根据其含义,这个问题是Include SVG file in SVG的副本(至少在Firefox上回答了问题)。我保持开放,因为我认为标题和标签更有可能被你找到。

2 个答案:

答案 0 :(得分:3)

SVG规范只是说明你可以使用URI - 所以它应该是可能的。浏览器支持当然是另一回事。

我刚刚编写并测试了一个小样本文件。

它在Inkscape中不起作用 - 但它确实与Apache Batik Toolkit一起使用。

对于浏览器支持,我将文件上传到browsershots.org并对其进行总结:某些浏览器确实支持外部渐变 - 有些则不支持。 e.g:

  • Firefox 3.0否
  • Firefox 3.5是
  • Opera 9.64,10.0 YES
  • Safari 4否
  • Chrome 2.0 NO

答案 1 :(得分:0)

如果我理解正确,请将网址更改为

<rect fill="url(grad.svg?param=my_grad" />

然后动态生成svg?