作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将 CSS 样式应用于 SVG 内的 SVG 元素 <defs>
元素。虽然在 Chrome 和 Internet Explorer(版本 11)中,以下代码可以正常工作,但在 Firefox 中却不能。如何将样式应用于 defs
中的 SVG 元素也在 Firefox 中?
#symbolcontainer.green #mysymbol { fill: green; }
<svg>
<g id="symbolcontainer" class="green">
<defs>
<g id='mysymbol'>
<defs>
<circle id="myCircle" r="2" cx="2" cy="2"/>
</defs>
<use href="#myCircle"/>
</g>
</defs>
<use href="#mysymbol" />
</g>
</svg>
最佳答案
在 SVG 中,如果 cross the shadow-element boundary 不应用 2 样式.
影子树由 <use>
创建元素并由 <use>
的元素(及其子元素)的“阴影”组成。元素指向。
换句话说,如果您有一个复杂的选择器(一个包含 2 个或更多元素)并且其中一个元素从主文档中选择,而另一个在 use 元素的子元素中选择,则不会应用它。
让我们看看你的选择器。
<use>
元素。 #symbolcontainer.green { fill: green; }
<svg viewBox="0 0 5 5">
<g id="symbolcontainer" class="green">
<defs>
<g id='mysymbol'>
<defs>
<circle id="myCircle" r="2" cx="2" cy="2"/>
</defs>
<use href="#myCircle"/>
</g>
</defs>
<use href="#mysymbol" />
</g>
</svg>
关于css - 为什么样式不适用于 Firefox 中的 svg 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48367069/
我是一名优秀的程序员,十分优秀!