代码之家  ›  专栏  ›  技术社区  ›  Boldewyn

梯度服务器作为SVG中的外部文件[重复]

  •  5
  • Boldewyn  · 技术社区  · 15 年前

    可能重复:
    Include SVG file in SVG

    SVG中的fill属性接受一个指向渐变/模式元素的URL,即所谓的“paint server”的实例。

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

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

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

    这将是非常好的,因为这样就可以将他的所有渐变/模式存储在一个文件中,并将其缓存…

    干杯,

    更新: 这个问题的意思是 在SVG中包含SVG文件 (至少在firefox上,问题的答案在哪里)。我保持开放,因为我认为标题和标签更容易被你找到。

    2 回复  |  直到 15 年前
        1
  •  3
  •   räph    15 年前

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

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

    它在Inkscape中不起作用,但它可以与ApacheBatik工具包一起使用。

    为了支持浏览器,我将文件上载到 browsershots.org 总结一下:有些浏览器确实支持外部渐变,有些则不支持。 例如。:

    • 火狐3
    • 火狐3.5:是的
    • 歌剧9.64,10.0是的
    • 狩猎4号
    • 铬2无
        2
  •  0
  •   Mercer Traieste    15 年前

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

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

    然后动态生成SVG?