gpt4 book ai didi

css - 使用 作为 'background-image' ,取自单个 SVG

转载 作者:行者123 更新时间:2023-11-28 10:14:34 25 4
gpt4 key购买 nike

我知道我可以为每个图标使用一个 SVG 文件,然后将其用作 background-image :

.my-button {
background-image: url(binaries/icons/my-icon.svg);
}

我可以用 unicode 值定义字形,然后根据在 :after/:before 中应用的 content 将其添加到我的样式中伪元素,像这样:

<svg xmlns="http://www.w3.org/2000/svg">
<defs>
<font id="fontello" horiz-adv-x="1000" >
<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
<missing-glyph horiz-adv-x="1000" />
<glyph glyph-name="my-icon unicode="&#xe800;" d="m564 422l-234-224q-18-18-40-18t-40 18l-234 224q-16 16-16 41t16 41q38 38 78 0l196-188 196 188q40 38 78 0 16-16 16-41t-16-41z" horiz-adv-x="580" />
<glyph glyph-name="up-open" unicode="&#xe805;" d="m564 280q16-16 16-41t-16-41q-38-38-78 0l-196 188-196-188q-40-38-78 0-16 16-16 41t16 41l234 224q16 16 40 16t40-16z" horiz-adv-x="580" />
</font>
</defs>
</svg>

然后有一个基类加上一个特定图标的装饰器类,像这样:

.glyphicon {
position: relative;
top: 1px;
display: inline-block;
font-family: 'fontello';
font-style: normal;
font-weight: normal;
...
}

.glyphicon__my-iconn:before {
content: "\e800";
}

但是

我想知道是否可以直接引用单个 SVG 文件中的字形,可能具有绝对/相对路径,并将其用作 backgound-image url(),而无需定义一个额外的类,但只是将样式应用到我想要的类(在本例中为 my-button)。类似的东西(只是一个例子,我不知道正确的 URI 格式应该是什么):

.my-button {
background-image: url(binaries/icons/my-fontello-font.svg?font=fontello#my-icon
}

这将是完美的:

  • 加载字形图标时只有一个 HTTP 请求
  • 跳过为每个图标定义一个类(如果我有 200 个图标怎么办??)并直接使用它们

有办法吗?

最佳答案

我已经对这个主题进行了简短的挖掘(正在搜索它并找到了那个问题)。据我所知,可能有一种方法可以做到这一点,但它缺乏浏览器支持。

我想到的是有一个小解析器(就像一个简单的 grunt 任务),它将字形更改为 View 和路径,然后按照此处所述使用它们:https://css-tricks.com/svg-fragment-identifiers-work (背景图像法)。

希望这可以指导您到某个地方。我可能会更深入地探讨这个话题,但到目前为止,这似乎只是可能的(所以不是在每个浏览器中)。

关于css - 使用 <glyph> 作为 'background-image' ,取自单个 SVG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31785466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com