将SVG输出直接与页面代码内联放置,我能够像这样简单地用CSS修改填充颜色:
polygon.mystar {
fill: blue;
}
circle.mycircle {
fill: green;
}
这很好用,但是我正在寻找一种方法,当它用作Background-IMAGE时,修改SVG的“填充”属性。
html {
background-image: url(../img/bg.svg);
}
现在如何更改颜色?可能吗
作为参考,这是我的外部SVG文件的内容:
<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"
width="320px" height="100px" viewBox="0 0 320 100" enable-background="new 0 0 320 100" xml:space="preserve">
<polygon class="mystar" fill="#3CB54A" points="134.973,14.204 143.295,31.066 161.903,33.77 148.438,46.896 151.617,65.43 134.973,56.679
118.329,65.43 121.507,46.896 108.042,33.77 126.65,31.066 "/>
<circle class="mycircle" fill="#ED1F24" cx="202.028" cy="58.342" r="12.26"/>
</svg>
这是我最喜欢的方法,但是您的浏览器支持必须非常先进。使用mask属性,您可以创建应用于元素的遮罩。遮罩不透明或实心的任何地方,下面的图像都会显示出来。在透明的地方,基础图像被掩盖或隐藏。CSS遮罩图像的语法类似于背景图像。看看codepen
mask