5

可能重复:
在 SVG 中包含 SVG 文件

SVG 中的 fill 属性接受一个指向渐变/图案元素的 url,即所谓的“绘画服务器”的一个实例。

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

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

和对应的<linearGradient />元素grad.svg

这将是非常好的,因为这样就可以将他所有的渐变/图案存储在一个文件中并获得缓存......

干杯,

更新:就其含义而言,这个问题是在 SVG 中包含 SVG 文件的副本(至少 Firefox 已经回答了该问题)。我保持开放,因为我认为标题和标签更有可能被你找到。

4

2 回答 2

3

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

我刚刚编写并测试了一个小示例文件。

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

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

  • 火狐 3.0 没有
  • 火狐 3.5 是
  • Opera 9.64、10.0 是
  • Safari 4 没有
  • 铬 2.0 否
于 2009-07-10T05:54:16.777 回答
0

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

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

然后动态生成svg?

于 2009-07-09T13:59:04.477 回答