2017-05-15 79 views
0

我已经经历过地狱,并试图通过CSS直接着色SVG,而不改变实际文件中的属性。 我想填充一个SVGCSS一个新的颜色,但我没有得到它的工作。仅使用CSS着色SVG?

针对对象元素内部的SVG元素似乎可以与Chrome浏览器的Inspector中的CSS fill: red属性一起使用,但在代码中执行相同操作也不会执行任何操作。

原始SVG文件没有任何填充属性。

如果有人能告诉我,我可以做这个,这将会是真棒

+2

不能使用页面的CSS来格式化SVG图像中通过'object'或'img'嵌入到文档中的元素 - SVG元素需要直接成为文档的一部分。 https://css-tricks.com/using-svg/#article-header-id-6 – CBroe

回答

0

假设你正在使用的SVG的内容,而不是仅仅作为一个图像/对象

我你已经经历了同样的过程,浪费了很多天的时间来解决这个问题。几个月后,我发现你可以在文件上放置一个简单的属性来实现这一点。我知道你说过你不想更改文件,所以如果你不这样做 - 你可以使用我使用JavaScript来取出SVG内容的肮脏技巧,创建一个新的div并放置内容在里面。

如果可以修改文件咯,不过,你可以添加:

fill="currentColor" 

,然后它会利用其祖先的颜色。

<svg ...> 
    <path fill="currentColor" ... /> 
</svg>