可能重复:
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上回答了问题)。我保持开放,因为我认为标题和标签更有可能被你找到。
答案 0 :(得分:3)
SVG规范只是说明你可以使用URI - 所以它应该是可能的。浏览器支持当然是另一回事。
我刚刚编写并测试了一个小样本文件。
它在Inkscape中不起作用 - 但它确实与Apache Batik Toolkit一起使用。
对于浏览器支持,我将文件上传到browsershots.org并对其进行总结:某些浏览器确实支持外部渐变 - 有些则不支持。 e.g:
答案 1 :(得分:0)
如果我理解正确,请将网址更改为
<rect fill="url(grad.svg?param=my_grad" />
然后动态生成svg?