结论
在我多番测试之后,才发现background-image使用svg,改变颜色根本做不了。
分析
当svg图片被使用成background-image,颜色的设置需要在svg内部才能生效。在外部css设置颜色样式,却是无效,这其实可以从css选择器得到解释,css选择器必须选择到dom元素,而svg却被做成背景图,并没有以元素引入,所以在外部也就设不了颜色。
例子
css:
i {
display: inline-block;
width: 100px;
height: 100px;
}.icon-del{
background-image: url(delete.svg);
}.st0{fill:#ec665e;}.st1{fill:#ffffff;}
html:
<i class="icon-del"></i>
svg:
<?xml version="1.0" encoding="utf-8"?><!-- generator: adobe illustrator 19.0.0, svg export plug-in . svg version: 6.00 build 0) --><svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewbox="-691 693 16 16" style="enable-background:new -691 693 16 16;" xml:space="preserve"><title>删除群成员</title><desc>created with sketch.</desc><g id="page-1">
<g id="群组名片成员_x28_管理员_x29_" transform="translate(-284.000000, -249.000000)">
<g id="group-19">
<g id="group-14" transform="translate(20.000000, 120.000000)">
<g id="群成员-copy-4" transform="translate(0.000000, 121.000000)">
<g id="删除群成员" transform="translate(264.000000, 8.000000)">
<g id="group" transform="translate(2.000000, 2.000000)">
<g id="oval-9">
<circle class="st0" cx="-685" cy="699" r="6"/>
</g>
<g id="path-2">
<path class="st1" d="m-681,700h-8c-0.6,0-1-0.4-1-1s0.4-1,1-1h8c0.6,0,1,0.4,1,1s-680.4,700-681,700z"/>
</g>
</g>
</g>
</g>
</g>
</g>
</g></g></svg>
以上就是如何在background-image中使用svg如何改变颜色 的详细内容。