Как использовать символы SVG в CSS?
Использование символов в форматах SVG кажется мне хорошей идеей, поэтому вы можете загружать только один SVG файл и использовать его как своего рода spritemap.
Мне кажется, что это неправильно, чтобы напрямую включать теги <svg></svg>
в свой html для значков, поскольку они являются только презентацией и должны быть добавлены в мой CSS.
Есть ли способ добавить символ из svg в псевдо-элементе :after
в моем CSS?
Ответы
Ответ 1
Вы можете ссылаться на фрагменты в CSS таким образом (фрагменты должны иметь идентифицированный идентификатор):
.element {
background-image: url('vector.svg#fragment');
}
Вы также можете показать определенную область, обрезая ее с помощью viewBox:
.element {
background-image: url('vector.svg#fragment(viewBox(0,0,25,25))');
}
Здесь вы можете узнать больше об этих методах:
http://www.broken-links.com/2012/08/14/better-svg-sprites-with-fragment-identifiers/
Другим способом может быть создание всех ваших символов в шрифте значка.
Ответ 2
Как упоминалось в комментарии Blazemonger, вы можете передать его внутри content
элемента after
.
Но если вы установите его как background
для after
, вам будет больше контролировать его в отношении size
, position
и любых других свойств, которые могут иметь фоновое изображение
HTML
<div id = "mydiv"><div>
CSS
#mydiv{
width:500px;
height:100px;
background:tomato;
}
#mydiv:after{
content:"After of #mydiv";
width:500px;
height:100px;
background:url('http://xn--dahlstrm-t4a.net/tmp/sharp-icons/svg-icon.svg') no-repeat;
position:absolute;
top:200px;
border:solid 1px tomato;
}
Вы можете сохранить svg как отдельный файл и указать его как url
для background
DEMO
Подробнее о способах добавления SVG на страницу здесь
Ответ 3
Обратите внимание на raphael.js, если вы хотите создать динамический svg
- извините, ссылка не работает