我正在使用SVG sprites来创建一个图标系统。我正在使用gulp-svg-sprites生成精灵并使用symbol
选项,因此在调用每个SVG时,我可以使用以下简单的内容:
<svg class="icon"><use xlink:href="sprite/svg/symbols.svg#icon-alert"></use></svg>
使用fill: currentColor
我还可以控制每个图标的颜色,这也很棒。
当我需要将这些图标用作背景元素时,会出现问题。我知道你不能使用xlink:href
从sprite中获取一个特定的图标 - 并且可以在这里需要时抓住单个SVG,但是当我需要更改那个的填充/颜色时会出现问题被引用为背景图像的SVG。
-webkit-background-clip: text;
之类的东西非常适合应用不同的背景并根据文字切断,但我需要一个可以按需切换的纯色覆盖。
是否有一个简单的SVG滤镜我可以附加到这个背景上(引用为SVG),我可以将其固定在这个上面?非常感谢任何帮助。谢谢!
Here is a working example。但是,我正在寻找可以在IE9中运行的东西,这就是为什么我希望有别的东西。
答案 0 :(得分:1)
使用我编写的LESS函数编写了一篇文章,该函数在使用LESS http://zslabs.com/articles/svg-background-fill
进入后编辑SVG对象答案 1 :(得分:0)
您可以应用滤镜来更改整个元素的颜色(包括背景) - 但在大多数情况下,您无法根据需要选择性地将其应用于背景。如果你有一个确切的在线例子,你想要覆盖的确切案例 - 对于你的确切情况可能会有一些非常具体的解决方案(例如,如果你的前景都是黑色的,那么彩色矩阵滤波器可能会起作用。 ))