Задать вопрос
@olya_097

Эти картинки лучше делать через тэг img(или псевдоэлемент)?

мобильная версия
5be1f36fcf681910768011.jpeg5be1f36fcf681910768011.jpeg
декстоп
5be1f2559c8d1415030706.jpeg
  • Вопрос задан
  • 235 просмотров
Подписаться 1 Средний 1 комментарий
Решения вопроса 2
Stalker_RED
@Stalker_RED
В идеале через svg или иконочным шрифтом, чтоб не переживать за разные разрешения и плотность пикселей. Это же вектор.
Ответ написан
delphinpro
@delphinpro Куратор тега CSS
frontend developer
Именно эти картинки (иконки) лучше всего загнать в символьный спрайт и вставлять в html особой конструкцией (покажу ниже).

Символьный спрайт — это один svg файл с набором множества символов. Из каждой иконки достается картинка (отбрасывается вся служебная инфа) и добавляется в общий файл тегом symbol. Такой файл-спрайт будет выглядеть примерно так:

<?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">

	<symbol viewBox="0 0 60 60" id="accounting" xmlns="http://www.w3.org/2000/svg">
		<path d="M59 20....."/>
		<path d="M35 32....."/>
		<path d="M38 5h....."/>
	</symbol>

	<symbol viewBox="0 0 60 60" id="archive" xmlns="http://www.w3.org/2000/svg">
		<path d="M59 20....."/>
		<path d="M35 32....."/>
		<path d="M38 5h....."/>
	</symbol>
</svg>


Обратите внимание на идентификаторы символов — по ним будут вставляться иконки в html. Также обратите внимание на отсутствие стилизующих атрибутов и атрибутов style в элементах (path) картинки. Это важно, если вы хотите задавать цвет картинки через css.

Картинка из такого спрайта вставляется в html следующей конструкцией:

<svg class="my-icon">
    <use xlink:href="images/svg-sprite.svg#archive"></use>
</svg>


Здесь указывается путь к картинке и после решетки тот самый идентификатор символа, указанный внутри спрайта.

Теперь вы можете полностью управлять вставленной картинкой стилями:

.my-icon {
  width: 50px;
  height: 50px;
  fill: orange; /* Цвет заливки */
  stroke: blue; /* Цвет обводки */
}


Вы можете задать цвет, равным currentColor, и тогда иконка будет того же цвета, что и свойство color. Это бывает удобно.

.my-icon {
  fill: currentColor; /* Цвет заливки */
}


Примечание. В IE есть небольшие проблемы с этим способом. СВГ-спрайт должен быть вставлен в тело страницы. Рекомендую для устранения проблемы воспользоваться скриптом svg4everybody.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы