【发布时间】:2021-12-12 19:56:34
【问题描述】:
我需要创建一些 SVG 文件,并希望在一个文件中保留一组常用符号并将它们导入到其他文件中。
我设法使用<use> 元素做到了这一点:
<use href="common.svg#symbol1" />
问题是如果common.svg有一个影响元素的CSS样式,那么该样式在导入元素的文件中没有影响。
我在 svgur.com 上上传了两个 SVG 来展示这个:
https://svgur.com/i/bYv.svg
...定义一个 ID 为 ball 的圆圈,该圆圈受在其周围设置红色边框的样式影响。
<svg width="100" height="100" version="1.1" xmlns="http://www.w3.org/2000/svg">
<style>#ball { stroke:#ff0000; stroke-width:10; }</style>
<circle id="ball" cx="50" cy="50" r="45" />
</svg>
https://svgur.com/i/bXA.svg
...使用圆圈。圆圈可见,但边框不可见。
<svg width="100" height="100" version="1.1" xmlns="http://www.w3.org/2000/svg">
<use href="bYv.svg#ball" />
</svg>
问题:
-
这是我正在使用的 SVG 渲染器的错误,还是它的行为方式?
我尝试过的每个渲染器(chrome、firefox、inkscape)都显示相同的结果,所以我怀疑这可能是预期的行为。
-
有没有什么方法可以从外部 SVG 文件中导入元素以及影响它的 CSS 样式,使其看起来与原始文档中的完全一样?
【问题讨论】:
标签: css svg import external shadow-dom