首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用<glyph>作为“背景图像”,取自单个SVG。

使用<glyph>作为“背景图像”,取自单个SVG。
EN

Stack Overflow用户
提问于 2015-08-03 10:56:00
回答 1查看 3.6K关注 0票数 5

我知道我可以在每个图标上使用一个SVG文件,然后使用它作为background-image

代码语言:javascript
复制
.my-button {
    background-image: url(binaries/icons/my-icon.svg);
}

我可以用unicode值定义象形文字,然后依赖于content将其添加到我的样式中,应用在一个:after/:pseudo中,如下所示:

代码语言:javascript
复制
<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>

然后有一个基类和一个特定图标的装饰类,如下所示:

代码语言:javascript
复制
.glyphicon {
    position: relative;
    top: 1px;
    display: inline-block;
    font-family: 'fontello';
    font-style: normal;
    font-weight: normal;
    ...
}

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

我想知道是否可以直接引用单个SVG文件中的字形,可能使用绝对/相对路径,并将其用作背景图像url(),而不需要定义额外的类,而只是将样式应用于我想要的类(在本例中是我的-按钮)。类似于(仅举一个例子,我不知道正确的URI格式应该是什么):

代码语言:javascript
复制
.my-button {
    background-image: url(binaries/icons/my-fontello-font.svg?font=fontello#my-icon
}

这将是完美的:

  • 加载字形图标时只有一个HTTP请求
  • 跳过每个图标的单个类的定义(如果我有200个图标呢?)只需使用它们

有办法吗?

EN

回答 1

Stack Overflow用户

发布于 2015-09-21 12:28:22

我对这个话题进行了简短的挖掘(正在寻找并发现了这个问题)。据我所知,可能有办法做到这一点,但它缺乏浏览器支持。

我所想到的是有一个小的解析器(就像一个简单的咕噜任务),它将把象形文字转换成视图和路径,然后按照下面的描述使用它们:https://css-tricks.com/svg-fragment-identifiers-work (背景图像方法)。

希望这能指引你到什么地方去。我可能会更深入地研究这个话题,但到目前为止,似乎只有这样才有可能(在每个浏览器中都是如此)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31785466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档