gpt4 book ai didi

reference - 外部定义的标记不会出现在 SVG 中

转载 作者:行者123 更新时间:2023-12-04 16:00:37 25 4
gpt4 key购买 nike

我正在尝试为一堆 SVG 图像统一标记。我的问题是我无法在标记定义中进行外部引用。可能与问题How to reference external svg file in svg correctly?有关但仍然缺少一个链接。

我做了一个小例子来演示我的问题:

b.svg(被引用):

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<defs>
<circle id="b" r="6" stroke="black" fill="green" />
<marker id="b_end"
orient="auto"
style="overflow:visible">
<use xlink:href="#b" />
</marker>
</defs>
</svg>

a.svg(尝试引用 b.svg):
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<defs>
<circle id="a" r="6" stroke="black" fill="yellow" />
<marker id="a_end"
orient="auto"
style="overflow:visible">
<use xlink:href="#a" />
</marker>
<marker id="b_end"
orient="auto"
style="overflow:visible">
<use xlink:href="b.svg#b" />
</marker>
</defs>
<path d="m 10,10 20,20" style="marker-end:url(#a_end)" stroke="black" />
<path d="m 40,10 20,20" style="marker-end:url(#b_end)" stroke="black" />
<path d="m 70,10 20,20" style="marker-end:url(b.svg#b_end)" stroke="black" />
</svg>

如您所见,我通过内部 id 引用了第一行的标记(实际上是两个,因为标记也有引用)。这工作正常。

我对第二行使用了带有外部路径的内部标记定义。它不起作用。 (线条已显示,标记未显示。)

我在第三行使用了一个外部标记。它也不起作用。

问题可能是外部内容不在托管 DOM 中 - 至少在解决样式中的引用时不会。

好的,但我能做些什么呢?如何在 SVG 中为标记引用外部元素?

最佳答案

我想我可以根据我的实验和罗伯特留下的评论回答我原来的问题。

我写的代码应该可以在 SVG 中使用,并且可以与 Opera 和 Firefox 一起使用。此外,它在使用 Apache FOP 生成 PDF 时有效,这对我来说是关键点。

唯一的问题是外部引用在 IE、Chrome 和 Safari 中不起作用。我不确定来自样式定义的外部引用何时在 Firefox 中实现:它在 7.0 中不起作用,但在 11 中起作用。

关于reference - 外部定义的标记不会出现在 SVG 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9233279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com