Открыть сервис

SVG

SVG (от англ. Scalable Vector Graphics — масштабируемая векторная графика) — это язык разметки на основе XML для описания двумерной векторной графики. SVG-изображения представляют собой набор геометрических примитивов (линий, кривых, многоугольников, окружностей) и текстовых элементов, заданных математическими формулами, благодаря чему они масштабируются без потери качества в отличие от растровых форматов (JPEG, PNG). Формат поддерживает анимацию, интерактивность, стилизацию через CSS и встраивание в HTML-документы, что делает его стандартом для веб-графики, иконок, логотипов и интерфейсов.

История

Предпосылки и разработка

До появления SVG в вебе доминировали растровые изображения, но с ростом разрешений экранов (Retina) и разнообразия устройств возникла потребность в формате, не зависящем от пикселей. В конце 1990-х годов несколько компаний, включая Adobe, Macromedia, Sun Microsystems и W3C, начали работу над стандартом векторной графики для Интернета. В 1998 году консорциум W3C опубликовал первую спецификацию SVG 1.0, которая стала рекомендацией в 2001 году. Основой послужили языки VML (разработанный Microsoft) и PGML (Adobe, Sun), но SVG вобрал в себя лучшие черты обоих.

Основные версии

Эволюция поддержки браузерами

Первые браузеры (Internet Explorer 6–8) не поддерживали SVG. Начиная с 2010 года, все основные браузеры (Firefox 4, Chrome 27, Safari 6, Opera 10) включили встроенную поддержку SVG. С 2015 года SVG стал полностью поддерживаемым форматом во всех современных веб-браузерах, включая IE11 (частично).

Синтаксис и структура

XML-основа

SVG-файл является XML-документом с корневым элементом <svg>, который задаёт пространство имён, размеры (viewBox) и систему координат. Пример простейшего SVG:

``xml <svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 100 100"> <circle cx="50" cy="50" r="40" fill="blue" /> </svg> ``

Основные элементы

Атрибут viewBox

Система координат SVG задаётся атрибутом viewBox="minX minY width height". Он определяет, какая часть графической области отображается и как масштабируется (через preserveAspectRatio). Без viewBox масштабирование может искажаться; при его наличии размеры адаптируются к контейнеру.

Особенности и преимущества

Масштабируемость

SVG-изображения не растрируются при увеличении — они состоят из математических описаний, поэтому сохраняют чёткость на любых экранах, включая дисплеи с высокой плотностью пикселей (Retina). Коэффициент масштабирования может быть любым: 1x, 2x, 3x без потери качества.

Малый размер файла

Для простой геометрии и иконок SVG-файлы обычно значительно компактнее растровых аналогов (современный SVG-логотип может весить 0.5–5 КБ, тогда как PNG — 10–50 КБ). Однако сложные фотографии с множеством деталей в SVG бесполезны: они будут занимать больше места, чем JPEG.

Интерактивность и анимация

SVG поддерживает события (onclick, onmouseover), что позволяет создавать интерактивные элементы (кнопки, карты, анимации) без дополнительного JavaScript. Анимация задаётся через CSS-переходы или встроенные элементы <animate>. Пример: интерактивная карта мира с подсветкой стран при наведении.

Стилизация через CSS

SVG-элементы можно стилизовать как обычные HTML-теги: задавать цвета, шрифты, толщину линий, тени и переходы. Это упрощает поддержку единого визуального стиля на сайте.

Доступность и SEO

Текстовые элементы в SVG остаются доступными для экранных дикторов и поисковых роботов. Можно добавлять атрибуты title, desc, aria-label для улучшения семантики.

Применение

Веб-дизайн и интерфейсы

SVG — основной формат для иконок, логотипов, диаграмм, кнопок и элементов интерфейса. Многие современные библиотеки иконок (Font Awesome, Material Icons, Bootstrap Icons) поставляют иконки именно в SVG-формате благодаря его масштабируемости и возможности менять цвет через CSS.

Геоинформационные системы (ГИС)

Векторные карты (Google Maps, OpenStreetMap) используют SVG для отображения дорог, границ стран, маршрутов. Слой векторов позволяет плавно зуммировать и обрабатывать большое количество объектов.

Инфографика и визуализация данных

Средствами SVG создаются графики, диаграммы, таймлайны. Библиотеки D3.js, Highcharts, Chart.js генерируют SVG-элементы для визуализации статистики.

Анимации и иллюстрации

Сложные анимации (например, логотипы, меняющие форму, появление элементов по очереди) реализуются через CSS-анимацию или JavaScript. Также SVG используют для создания логотипов в формате Lottie (анимированные файлы).

Полиграфия и печать

Поскольку SVG не привязан к пикселям, его можно экспортировать в PDF или использовать для вёрстки визиток, плакатов, баннеров. Однако печатные машины часто требуют преобразования в CMYK-растровые форматы.

Недостатки и ограничения

Сложность для фотографий

SVG не предназначен для хранения фотографических изображений с непрерывными цветовыми переходами (градиенты, закаты, лица). Для фото формат JPEG остаётся эффективнее.

Поддержка старых браузеров

В Internet Explorer 8 и более ранних версиях SVG не поддерживался. Современные браузеры (Edge, Chrome, Firefox, Safari) работают исправно, но в некоторых мобильных браузерах могут быть проблемы с анимацией.

Безопасность

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

Производительность при большом количестве объектов

Сложные SVG-файлы с тысячами элементов (например, карты с детализированной топографией) могут замедлять рендеринг в браузере. Для таких сценариев используют WebGL или Canvas.

Создание и инструменты

Ручное редактирование

SVG можно создавать в любом текстовом редакторе (Notepad++, VS Code), написав код вручную. Для начинающих полезно изучение документации W3C.

Векторные редакторы

Онлайн-генераторы

Существуют сервисы для быстрого создания SVG-кода: SVG Editor (svgwrite), SVGator (анимация), Shape Divider (волны, кривые).

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →