Я знаю, что могу использовать один файл SVG для каждого значка, а затем использовать его как background-image
с:
.my-button {
background-image: url(binaries/icons/my-icon.svg);
}
or
что я могу определить глифы с помощью значения unicode, а затем добавить его в свои стили, полагаясь на content
, примененный в псевдоэлементе : after /: before, например :
<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="" 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="" 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, возможно, с абсолютным / относительным путем, и использовать его как URL-адрес фонового изображения () без определения дополнительного класса но просто применяя стиль к желаемому (в данном случае my-button). Что-то вроде (просто пример, я не знаю, какой должен быть правильный формат URI):
.my-button {
background-image: url(binaries/icons/my-fontello-font.svg?font=fontello#my-icon
}
Это было бы идеально для:
- иметь только один HTTP-запрос при загрузке иконок
- пропустить определение одного класса для каждого значка (что, если у меня 200 значков ??) и просто использовать их
Есть ли способ сделать это?