我正在尝试改变不同页面上显示的SVG的颜色,使用的代码是 <svg id="logo-svg"><use xlink:href="#kmc-logo"></use></svg>
。
我正在尝试的方法在这里:https://tympanus.net/codrops/2015/07/16/styling-svg-use-content-css/。
这是我要引入的symbol
SVG(缩短为相关部分):
<svg xmlns="http://www.w3.org/2000/svg">
<symbol id="kmc-logo" viewBox="0 0 151 151">
<g id="logo">
<g id="outer-circle">
<path fill="none" stroke-linecap="round" stroke-linejoin="round" d="M11.51 ..."/>
</g>
<g id="ceramics">
<path stroke="none" d="M39.47 ..."/>
</g>
</g>
</symbol>
</svg>
我在我的样式表中有这个样式:
#masthead > .content-width .site-branding .logo--white a #logo-svg {
fill: #fff;
stroke: #fff;
}
这里的 stroke
颜色对于上面阴影 DOM 的 SVG 中的 #outer-circle
是有效的,但填充在 #ceramics
内部的路径中不起作用。
有没有人能够解释一下?提前致谢!
编辑:我在发现问题不是由于 CSS 专业性而是由于在阴影 DOM svg 中样式化元素引起的后,更新了这个问题。
#fff
,你的问题是“为什么a:visited
没有被划掉”?还是访问过的链接颜色实际上出现为#343533
?如果是后者,我们需要一个演示来重现这个问题。我已经复制+粘贴了你的代码,虽然a:visited
仍然被列出,但#masthead > .content-width .site-branding h1 a:visited
显示了正确的颜色。 - Tyler Roper#ceramics path
的fill
属性使我无法解决问题。我已经尝试了明确设置它,这可以工作,但我需要在不同情况下能够更改颜色。我已经尝试过fill="currentColor"
,但这会从我的问题开头提取#343533
颜色。 - dmoz* { transition: all .2s ease; }
阻止了填充样式应用到这个 SVG 上。为什么?怎么回事?我不确定。但是我把它删除了,现在一切都按预期工作了。感谢所有花时间检查它的人!对于这个偏离话题,我很抱歉! - dmoz