css - 更改数据 url 嵌入 SVG 图像的颜色

标签 css svg

我将 SVG 背景图像作为数据 URL 嵌入到 CSS 文件中:

.what { background: url('data: image/svg+xml; utf8, <svg> ... </svg') }

我希望另一个元素具有相同的背景图像,只是颜色不同,但我不想重复整个 SVG 代码。

<div class="what one">...</div>
<div class="what two">...</div>

那么如何更改背景 SVG 图像的颜色?

请不要使用 Javascript。


其他相关问题都没有回答这个问题,因为那里给出的解决方案依赖于提供两个不同的文件,我想避免这种情况,因为我想为移动用户最小化文件大小。

最佳答案

显然,作为Noah Blon explains , 可以使用 CSS 滤镜设置 SVG 背景图像的颜色样式。

他在他的网站上给出的一个例子是:

.icon-blue {
    -webkit-filter: hue-rotate(220deg) saturate(5);
    filter: hue-rotate(220deg) saturate(5);
}

请访问他的网站以获取更多信息和其他两个解决方案,这两个解决方案不涉及更改颜色,而是涉及 SVG 背景 Sprite 和创建覆盖背景的“倒置”SVG,并且在背景颜色闪耀的地方透明以创建彩色形式.

不幸的是,IE does not support filters .

关于css - 更改数据 url 嵌入 SVG 图像的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34946882/

相关文章:

javascript - 动画化这个标志

html - svg 作为背景 html

javascript - Canvas 另存为图像 [canvg - 在 Canvas 上渲染 svg]

javascript - D3 在 X 轴上平移直线时,沿 mousemove 中断的路径移动圆

javascript - 光滑 slider 问题 : Image not showing on initial load

javascript - 如何使我的表单正确自动缩放?

html - 尝试使用 css flexbox 创建 View ,结合行和列

javascript - 修改 svg :path using d3

css - 当屏幕变窄时,我如何解释 Bootstrap 4 固定导航栏变高

php - css 不适用于 codeigniter