通过css访问svg的路径属性

时间:2017-01-13 21:04:09

标签: html css svg

我用插画家保存了我的svg图像,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     viewBox="10.3 126 503.7 272" style="enable-background:new 10.3 126 503.7 272;" xml:space="preserve">
<style type="text/css">
    .st0{fill:#B7B7B7;}
    .st1{fill:#33BFC1;}
    .st2{fill:#B23939;}
</style>
<path fill="#B7B7B7" class="st0" d="M20.4,126h113c4.3,0,8"/>
<path class="st1" d="M504,126H390c-4.3,0-8,2.7-9.4,6"/>
<path class="st2" d="M420.9,384.6l-92.2-252"/>
</svg>

在我的HTML中我有:

<a><img class="logo" src="logo.svg"></a>

由于svg中有3个路径,我希望能够使用css为每个路径设置样式。我知道我可以直接编辑svg文件,但想法是通过css更改它。

我尝试了类似

的内容
.st0 {
fill:#fff
}
.st0 path {
fill:#fff
}

但它都不起作用

1 个答案:

答案 0 :(得分:0)

只有当它放在上一个.st0声明之后才能工作。

.st0 {
fill:#fff
}

这是宣告第二个例子的正确方法。

path.st0  {
fill:#fff
}

但这两个都必须在svg代码块之后。

我认为发生的事情是你的身体里有SVG,而你正在宣告头部的css。所以你的填充:#fff被SVG元素中的CSS覆盖。