更新: 是的,我知道也有类似的问题,但解决方案也不起作用。如何更改SVG的路径颜色?
我想改变SVG的颜色,我的意思是路径的颜色,而不是颜色“内部”,但路径本身。
我第一次尝试与CSS,它根本没有工作。然后用js,它几乎可以工作:
这可以工作,也就是加载图像。它默认为黑色。
<object id = 'test' data="images/icons/040__file_delete.svg" type="image/svg+xml"></object>
我想将其更改为绿色。
<script>
$(function(){
document.getElementById("test").addEventListener("load", function() {
var doc = this.getSVGDocument();
console.log(doc);//works fine
var p = doc.querySelector("path"); //works
p.setAttribute("stroke", "green");
});
})
</script>
以上做了“工作”,但增加了一个“边界”的路径。我也尝试过使用“color”,“fillcolor”,“fill” - 没有任何作用。
更新II:该SVG的源:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" id="图层_1" x="0px" y="0px" viewBox="0 0 18 18" style="enable-background:new 0 0 18 18;" xml:space="preserve">
<style type="text/css">
.st0{fill:#231815;}
</style>
<g>
<g>
<g>
<g>
<g>
<path class="st0" d="M13,17.5H5c-1.4,0-2.5-1.1-2.5-2.5V3c0-1.4,1.1-2.5,2.5-2.5h3.6c0.4,0,0.8,0.2,1.1,0.4l5.4,5.4 c0.3,0.3,0.4,0.7,0.4,1.1V15C15.5,16.4,14.4,17.5,13,17.5z M5,1.5C4.2,1.5,3.5,2.2,3.5,3v12c0,0.8,0.7,1.5,1.5,1.5h8 c0.8,0,1.5-0.7,1.5-1.5V7.4c0-0.1-0.1-0.3-0.1-0.4L8.9,1.6C8.8,1.6,8.7,1.5,8.6,1.5H5z" fill="green"/>
</g>
<g>
<path class="st0" d="M15,7.5h-4C9.6,7.5,8.5,6.4,8.5,5V1c0-0.3,0.2-0.5,0.5-0.5S9.5,0.7,9.5,1v4c0,0.8,0.7,1.5,1.5,1.5h4 c0.3,0,0.5,0.2,0.5,0.5S15.3,7.5,15,7.5z"/>
</g>
</g>
<g>
<g>
<path class="st0" d="M10.5,13.9c-0.1,0-0.3,0-0.4-0.1l-3-3C7,10.5,7,10.2,7.1,10s0.5-0.2,0.7,0l3,3c0.2,0.2,0.2,0.5,0,0.7 C10.8,13.8,10.6,13.9,10.5,13.9z"/>
</g>
<g>
<path class="st0" d="M7.5,13.9c-0.1,0-0.3,0-0.4-0.1C7,13.5,7,13.2,7.1,13l3-3c0.2-0.2,0.5-0.2,0.7,0s0.2,0.5,0,0.7l-3,3 C7.8,13.8,7.6,13.9,7.5,13.9z"/>
</g>
</g>
</g>
</g>
</g>
</svg>
'stroke'是一个路径的'边界'。无论你想要填充还是中风,你都提到了两个,所以我没有看到你想要完成的。你可以把它放到“SO片段”中,以便我们看到问题所在? (另外我认为使用'object'标记,你需要添加一个'style'元素到svg,我不知道jQuery可以读这个shadow DOM) – somethinghere
@somethinghere - 好吧,我不想中风(大纲)。我希望路径本身变成绿色。顺便说一句。我添加了完成SVG的内容。 –
笔划_is_是您的路径的彩色版本。 – somethinghere