Введение
Введение
Масштабируемая векторная графика (Scalable Vector Graphics — SVG) является языком разметки расширенным из XML для описания двухмерной векторной графики.
SVG является рекомендацией W3C (то есть, стандартом), и явно спроектирован для работы с другими стандартами W3C, такими, как CSS и DOM.
Простейший код SVG рисунка выглядит следующим образом
В нем присутствует свой DOCTYPE
, так же должен быть открывающий и закрывающий тег svg
, а учитывая, что фактически это код XML
то любой тег должен закрываться. Можно заметить, что мы задали размеры для svg
элемента атрибутами width
и height
, они в нашем случае равны 4 дюйма ширины и 3 дюйма высоты, но большинстве случаев размеры задаются в пикселях, обозначение которых по умолчанию опускается и оставляют только число. В дальнейшем мы будем использовать именно пиксели и почти всегда будем указывать размеры svg
элемента, иначе некоторые браузеры просто не будут их отображать. Внутри тега svg
располагается непосредственно сам код рисунка, а так же два дополнительных тега, title
заголовок рисунка некий аналог атрибута alt
тега img
и тег desc
в который можно записать текстовое описание картинки. Эти два тега не являются обязательными, но желательны для сложных иллюстраций. Они визуально не отображается, а текст из тега title
браузер должен показывать в тултипе при наведении мышкой на картинку.
В чем же преимущества SVG и, что обеспечило ему популярность:
- Масштабирование: в отличие от растровой графики, SVG не теряет в качестве при масштабировании, поэтому ее удобно использовать для разработки под retina.
- Уменьшение HTTP-запросов: при использовании SVG сокращается количество обращений к серверу, соответственно увеличивается скорость загрузки сайта.
- Стайлинг и скриптинг: при помощи CSS можно менять параметры графики на сайте, например фон, прозрачность или границы.
- Анимация и редактирование: при помощи javascript можно анимировать SVG, а также редактировать в текстовом или графическом редакторе (InkScape или Adobe Illustrator).
- Малый размер: объекты SVG зачастую весят намного меньше растровых изображений.