
解决 SVG 注入后 CSS 无法修改图标颜色问题
使用 标签引入 SVG 图标时,有时 CSS 样式无法生效,尤其是在使用 SVG 注入技术(例如 @iconfu/svg-inject)后。这是因为注入过程将 标签替换成了内联的 SVG 代码,导致原 CSS 选择器失效。
SVG 注入通常包含以下步骤:
- 安装 SVG 注入库。
- 在 JavaScript 文件中引入该库。
- 在 HTML 中,使用
onload="svginject(this)"属性引入 SVG 图标。 - 使用 CSS 选择器(例如
.icon)尝试修改图标颜色。
然而,这种方法通常无效。 要解决这个问题,需要直接在内联 SVG 元素上设置样式,而不是通过原先的 标签选择器。 一种有效的方法是使用 currentColor 属性:
立即学习“前端免费学习笔记(深入)”;
.icon {
fill: currentColor;
}
这样,图标的颜色就会继承父元素或应用于 .icon 选择器的颜色。 如果父元素没有设置颜色,则默认使用黑色。 你也可以直接在 CSS 中为 .icon 指定具体的颜色值,例如 fill: blue;。










