AlibekKulseitov
@AlibekKulseitov
Люблю верстать и писать музыку

Inline svg vs svg sprite?

Добрый день! Насколько в наши дни актуально использовать спрайты?

SVG INLINE:
+ Насколько я знаю Есть вставлять иконки инлайном то открывается кучу возможностей для их манипуляции.
Можно менять цвет на какой угодно, можно анимировать, практический вроде не дает нагрузки на сервер при загрузки страницы.
- Очень много кода
- Нету возможности вставлять иконки если иконка зависит от класса. Тут уже без background-image не обойтись. Например у горячих новостей своя иконка .news -hot
Например у новых новостей своя иконка.news -new и тд

SVG SPRITE:
+ Не проверял но вроде не плохая скорость загрузки сайта при спрайтах
- Если мы вставляем иконки через background-image то есть через спрайты то у нас есть ограничения. Менять цвет иконки только если есть дубликат иконки с другим цветом и при ховере делать замену картинки. Как по мне это не очень практично и иногда бывают баги с бликами. Когда пользователь зашел в первый раз на страницу и наводит на иконку то она имеет блик/баг и только при повторном ховере заменяется картинка.
- Если клиент захотел добавить новую иконку или заменить старую но приходится заново собирать спрайт на фронте что не очень удобно.

Если что-то упустил, дополните пожалуйста и хочу услышать ваши мнения =) Спасибо.
  • Вопрос задан
  • 1579 просмотров
Пригласить эксперта
Ответы на вопрос 3
Odisseya
@Odisseya
Оптимизирую PageSpeed & Performance
Для множества иконок обычно использую спрайты во внешнем файле. Преимущество: кэшируется и отчасти управляемо из стилей, не мусорит разметку. Спрайт генерируется галп-таском из папки с отдельными svg. Для IE полифилл.
Ответ написан
LenovoId
@LenovoId Куратор тега SVG
svg, css,js
inline svg лучше ....
но если к примеру svg имеет большой код ...можно его вынести в отдельный файл и подключить как img это будет на самом деле лучше
Ответ написан
profesor08
@profesor08 Куратор тега CSS
Если вставляешь как inline, то надо следить чтоб не было конфликтов id. Если хочешь анимировать на js, то только inline.

Если анимация на css, либо на svg, либо ее нет вовсе, то можно просто картинкой вставить. Анимацию можно реализовать внутри самого svg файла.
<img src="image.svg">
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы