uwebdesign

подкаст «Суровый веб» про веб разработку, IT и ux дизайн

smartape
  • «Суровый веб»
  • Полезные ссылки
  • Книги
  • Обзоры
  • О проекте
  • Контакты
  • Поддержать проект
uWebDesign

SVG спрайты, 4 способа использования

04.04.2015 — 4 комментария

Мы давно собирались делать видео про SVG спрайты, и вот наконец-то случилось. Существует четыре классических способа использования (с CSS и JavaScript), которые мы и рассмотрим, а еще поговорим о способах практического их применения: анимации и работа с кучей иконок.

sprite-logo

#

SVG спрайт инлайново в HTML

Первый способ — положить SVG код прямо в HTML, спрятать его с помощью display: none и понаписать там несколько <g> элементов внутри блока <defs>. Это старый способ, который потом улучшили заменив <defs> и <g> на несколько элементов <symbol>.

Обращаться к «символам» можно через блок <use> и атрибут xlink:href по айдишнику.

Но в таком случае браузер ничего не может закешировать и на на помощь приходит способ #2.

#

SVG спрайт в отдельном файле

Отличается от первого только тем, что мы кладем спрайт в какую-нибудь директорию и к элементам обращаемся с помощью того же атрибута xlink:href, но вместо «голого» айдишника нужно сначала написать сам файл.

Так браузер будет кешировать файл на всех страницах вашего сайта и не придется его каждый раз загружать.

Инструменты для сборки: grunt и gulp.

#

SVG спрайт из CSS файла

Еще один способ — выкладывать SVG напрямую в CSS с помощью data:image или data:url. Нам тут в комментариях советовали, что не стоит копипастить чистый SVG, лучше эскейпить, а то вдруг чего.

Инструменты для сборки: grunt, gulp, онлайн.

#

SVG спрайт с общим viewbox

Классический спрайт с одним общим «полотном». Обращение к конкретным элементам происходит посредством сдвигания viewox. Используется в основном для различных анимаций. Напримет таких.

See the Pen SVG Sprite Animation #2 by Sarah Drasner (@sdras) on CodePen.

#

Заключение

Использование SVG спрайтов существенно облегчает работу с множеством иконок, к ним проще получать доступ и их проще стилизовать. Плюс к ним не применяется сглаживание (антиалиасинг) в отличие от иконочных шрифтов.

Fallback для старых и хромых веб-дизайнеров браузеров: svg4everybody.

Для пошаговых и не только анимаций, использование SVG спрайтов меняет ровно то, что они векторные и хорошо смотрятся везде. Ну и их можно скриптить по частям, что дает бесконечные возможности для творчества.

Если вы, конечно, будете этими возможностями пользоваться.

Тип видео: Обзоры на web технологии Метки: CSS, JavaScript, SVG

4 комментария

  1. Юрий прокомментировал

    10.12.2015 at 20:35

    Первый!

    Ответить
  2. Тони прокомментировал

    24.10.2016 at 20:02

    Статья пустая, и да.

    Ответить
  3. Вафа Абзи прокомментировал

    03.04.2017 at 14:01

    Круто. Не знал что на вашем сайте есть практические материалы и темболее видео. Классно! Спасибо!

    Ответить
  4. Олег прокомментировал

    20.04.2017 at 13:39

    Подскажите пожалуйста чем плох старый способ подключения через background-image?
    Пример https://habrahabr.ru/post/141654/
    Спасибо

    Ответить

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Поиск

uWebDesign настоятельно рекомендует!

  • Войти на сайт
  • Зарегистрироваться
Подписаться на рассылку

warcraft_rus
warcraft_rus
Полезные ссылки
  • О проекте
  • Часто задаваемые вопросы
  • Реклама
  • Поддержи проект!
  • Контакты
Пожертвуй на развитие проекта
Наш подкаст
в iTunes в Android в RSS
Все права защищены © 2014-2025 uWebDesign. Сделано с ♥ в Челябинске.
Пользовательское соглашение. Сайт работает на хостинге SmartApe.