我想 使用这种技术 并更改 SVG 颜色,但到目前为止我还不能这样做。我把它放在 CSS 中,但无论如何我的图像总是黑色的。
我的代码:
.change-my-color {
fill: green;
}
<svg>
<image class="change-my-color" xlink:href="https://svgur.com/i/AFM.svg" width="96" height="96" src="ppngfallback.png" />
</svg>
原文由 Barbara 发布,翻译遵循 CC BY-SA 4.0 许可协议
您不能以这种方式更改图像的颜色。如果将 SVG 作为图像加载,则无法在浏览器中使用 CSS 或 Javascript 更改其显示方式。
如果要更改 SVG 图像,必须使用
<object>
、<iframe>
或使用<svg>
内联加载它。如果您想使用页面中的技术,您需要 Modernizr 库,您可以在其中检查 SVG 支持并有条件地显示或不显示后备图像。然后,您可以内联您的 SVG 并应用您需要的样式。
看 :
您可以内联您的 SVG,用类名(
my-svg-alternate
)标记您的后备图像:在 CSS 中,使用 Modernizr 中的
no-svg
类(CDN: http ://ajax.aspnetcdn.com/ajax/modernizr/modernizr-2.7.2.js)来检查 SVG 支持。如果没有 SVG 支持,SVG 块将被忽略并显示图像,否则图像将从 DOM 树中删除(display: none
):然后您可以更改内联元素的颜色: