【发布时间】:2020-02-04 16:05:04
【问题描述】:
我正在创建一个网站,该网站的一个非常重要的要求是文件数量最少。我可以减少文件数量的一个地方是项目的 SVG 文件。目前这个项目正在使用 10 多个 SVG 文件,我希望将它们全部组合成一个 SVG sprite sheet。由于这些 SVG 文件在 CSS 中被用作背景图像:
.class-name {
background-image: url(/path/to/file.svg)
}
我现在有一个svg文件,前面的每个svg文件都是一个符号,所以svg文件是这样的:
<svg>
<symbol id="id1">....</svg>
<symbol id="id2">....</svg>
<symbol id="id3">....</svg>
...
</svg>
我希望在我的 CSS 中使用这些符号,如下所示:
.class-name {
background-image: url(/path/to/combined-file.svg#id1)
}
如何在我的背景图片中使用 SVG 符号。
我已经尝试了以下方法:
.class-name {
background-image: url(/path/to/combined-file.svg#id1)
}
还有
.class-name {
background-image: url("data:image/svg+xml;base64,<svg><use xlink:href="path/to/combined-svg#id1/></svg>"");
}
我也尝试将所有 <symbol> 标签转换为 <g> 标签,但随后所有图像开始相互重叠,因此变得毫无意义。
我希望有一个解决方案,我的所有 SVG 都在一个文件中,我可以在我的 CSS 背景图像中单独引用它们。
【问题讨论】:
-
我不认为你会发现这是可能的。