1. 程式人生 > >background-image使用svg如何改變顏色

background-image使用svg如何改變顏色

管理員 path -c ron display del view mage delet

結論

在我多番測試之後,才發現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如何改變顏色