0

在 Chrome(不是 FF、Safari)中,我无法通过类/ID/元素引用来设置外部链接(xlink:href)SVG 模板的子元素的样式。

我想知道我是否做错了什么?有没有其他人遇到过这个问题?

HTML:

<svg class="my-svg"><use xlink:href="demo.svg#my-icon" /></svg>

演示.svg:

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <symbol id="my-icon" viewBox="0 0 21 21">
    <title>Mobile Navigation Button</title>
    <path class="fml" fill="#BADA55" d="M27.493…"/>
  </symbol>
</svg>

CSS:

.my-svg { fill: pink; }     /* will work */
#my-icon { fill: brown; }   /* won’t work in Chrome */
.fml { fill: green; }       /* won’t work in Chrome */

我在这里发布了一个更详细的演示:

http://monopine.com/svg-demo/

4

1 回答 1

0

CSS 不适用于跨文件边界。因此,HTML 中针对外部 SVG 中的元素的任何 CSS 都将不起作用(或至少不应该起作用)。所以规则 2 和 3 ( #my-iconand .fml) 不应该起作用。

但是元素的内容<use>可以它们的引用继承样式。所以他们应该继承粉红色的填充.my-svg

于 2015-01-22T01:54:23.067 回答