- Svg на html странице
- Кратко
- Пример
- Как пишется
- Контейнер svg
- Обводка stroke
- Заливка fill
- Как подключать
- background — image
- Вставка в HTML
- Атрибуты
- Подсказки
- Документация и руководство по SVG
- Учебные руководства
- Документация MDM Web Docs
- На практике
- Алёна Батицкая советует
- Svg на html странице
- Расширяем возможности HTML за счёт создания собственных тегов
- Определение доступности атрибута HTML5 с помощью JavaScript
- HTML5: API работы с вибрацией
- Создание форм с помощью Webix Framework — 4 практических примера
- Знакомство с фрэймворком Webix
- Отключение HTML5 валидации
- 5 устаревших фишек в HTML5
Svg на html странице
Тег-обёртка для отображения векторной графики на странице.
- Кратко
- Пример
- Как пишется
- Контейнер svg
- Обводка stroke
- Заливка fill
- background-image
- Вставка в HTML
- Учебные руководства
- Документация MDM Web Docs
- Алёна Батицкая советует
Обновлено 8 сентября 2022
Кратко
Скопировать ссылку «Кратко» Скопировано
SVG — векторный формат графики, доступный в вебе. Формат основан на технологии XML.
До появления SVG мы могли использовать только растровые изображения: форматы JPG, PNG. Но растровые изображения имеют ряд недостатков:
- Растровые изображения плохо поддаются масштабированию. Это стало особенно актуальным с появлением ретина экранов.
- Растровые изображения, как правило, весят существенно больше, чем их svg-собратья.
- Растровые изображения можно редактировать только при помощи графических редакторов, в то время как svg-изображения представляют собой читаемый код.
- Растровые изображения статичны. SVG внутри себя может содержать CSS-стили или JS-скрипты.
Пример
Скопировать ссылку «Пример» Скопировано
Для сравнения посмотрим на PNG и SVG версии одного и того же изображения:
Как вы видите, второй вариант выглядит великолепно в отличие от первого. Это нам на руку при работе с адаптивными сайтами и с сайтами, которые должны круто смотреться на экранах с повышенной плотностью пикселей (так называемые ретина-экраны).
Заглянем в исходный код svg-картинки:
xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" viewBox="0 0 24 24"> d block-code__original-line"> 114.001.001A2 2 0 0117 12zm-8 0a3.001 3.001 0 016 0 3.001 3.001 0 01-6 0zm1 0a2 2 0 114.001.001A2 2 0 0110 12zm-8 0a3.001 3.001 0 016 0 3.001 3.001 0 01-6 0zm1 0a2 2 0 114.001.001A2 2 0 013 12z" />
svg xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" viewBox="0 0 24 24" > path d="M16 12a3.001 3.001 0 016 0 3.001 3.001 0 01-6 0zm1 0a2 2 0 114.001.001A2 2 0 0117 12zm-8 0a3.001 3.001 0 016 0 3.001 3.001 0 01-6 0zm1 0a2 2 0 114.001.001A2 2 0 0110 12zm-8 0a3.001 3.001 0 016 0 3.001 3.001 0 01-6 0zm1 0a2 2 0 114.001.001A2 2 0 013 12z" /> svg>
Не пугайтесь большому количеству странных цифр. Это описание координат каждой из точек изображения. Если вам нет необходимости редактировать SVG, то не обязательно понимать эти цифры.
Как пишется
Скопировать ссылку «Как пишется» Скопировано
Чаще всего svg-иконки или изображения вам будет предоставлять дизайнер или вы сможете найти их на различных стоках:
Вам редко придётся писать или менять файл с SVG руками, поэтому тут мы рассмотрим только те обязательные части, с которыми вы должны будете взаимодействовать при необходимости.
Контейнер svg
Скопировать ссылку «Контейнер svg» Скопировано
SVG не может быть записано без оборачивающего парного тега svg . Так браузер поймёт, что читать этот код нужно по особым правилам и отрисует картинку на странице.
Обводка stroke
Скопировать ссылку «Обводка stroke» Скопировано
Мы можем управлять толщиной и цветом линии, которая будет соединять все перечисленные точки svg-изображения. Причём можно задать один общий атрибут stroke для контейнера , а можно задавать его каждому отдельному вложенному элементу, сделав обводку разных частей картинки разного цвета.
Заливка fill
Скопировать ссылку «Заливка fill» Скопировано
Мы можем задать заливку нарисованной фигуры или оставить её прозрачной, только с обводкой. Если решите залить фигуру, то для этого используйте атрибут fill .
Как подключать
Скопировать ссылку «Как подключать» Скопировано
Есть несколько способов подключения svg-изображения к веб-странице. Каждый из них имеет свои преимущества и недостатки.
Скопировать ссылку «img» Скопировано
Самый простой способ — использовать тег
и указать путь до svg-картинки в значении атрибута src .
img class="icon" src="img/svg/dots.svg" alt="dots icon">
При таком способе мы можем легко управлять размерами картинки на странице. Но есть и минусы — не получится изменить цвет фона или заливки у самого SVG при помощи CSS.
background — image
Скопировать ссылку «background-image» Скопировано
Если svg-картинка не является контентной, то её без особого труда можно подключить в виде фона для элемента
Facebook
a href="https://facebook.com" class="icon fb"> Facebook a>
.icon display: block; width: 28px; height: 28px; background-repeat: no-repeat; background-position: center; background-size: contain;> .fb background-image: url(../img/svg/fb.svg);>
.icon display: block; width: 28px; height: 28px; background-repeat: no-repeat; background-position: center; background-size: contain; > .fb background-image: url(../img/svg/fb.svg); >
В этом случае мы также не имеем возможности управлять стилями SVG через CSS.
Вставка в HTML
Скопировать ссылку «Вставка в HTML» Скопировано
Код SVG можно вставить прямо в HTML-разметку станицы.
xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" viewBox="0 0 24 24" > d block-code__original-line"> 114.001.001A2 2 0 0117 12zm-8 0a3.001 3.001 0 016 0 3.001 3.001 0 01-6 0zm1 0a2 2 0 114.001.001A2 2 0 0110 12zm-8 0a3.001 3.001 0 016 0 3.001 3.001 0 01-6 0zm1 0a2 2 0 114.001.001A2 2 0 013 12z" />
div class="dots"> svg xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" viewBox="0 0 24 24" class="dots-icon" > path d="M16 12a3.001 3.001 0 016 0 3.001 3.001 0 01-6 0zm1 0a2 2 0 114.001.001A2 2 0 0117 12zm-8 0a3.001 3.001 0 016 0 3.001 3.001 0 01-6 0zm1 0a2 2 0 114.001.001A2 2 0 0110 12zm-8 0a3.001 3.001 0 016 0 3.001 3.001 0 01-6 0zm1 0a2 2 0 114.001.001A2 2 0 013 12z" /> svg> div>
При таком способе подключения мы можем управлять стилями SVG через стили. Это даёт возможность даже анимировать векторное изображение! 🎉
.dots-icon animation: animation 3s infinite alternate;> @keyframes animation from fill: red; > to fill: green; >>
.dots-icon animation: animation 3s infinite alternate; > @keyframes animation from fill: red; > to fill: green; > >
Неприятная особенность: если одна и та же SVG-картинка используется в нескольких местах на сайте, и в какой-то момент вы захотите в ней что-то изменить, то нужно будет найти все вставки и вносить исправления в код. При вставке SVG при помощи
или background — image достаточно будет внести изменения в svg-файл и правки применяться ко всем картинкам.
Атрибуты
Скопировать ссылку «Атрибуты» Скопировано
- fill — отвечает за заливку фигуры. Может использоваться как для всего контейнера svg , так и для отдельных частей. Более подробно тут → fill.
- stroke — отвечает за обводку фигуры. Может использоваться как для всего контейнера svg , так и для отдельных частей. Более подробно тут → stroke.
- view Box — атрибут, отвечающий за размеры окна отображения. Значением будет 4 цифры: min — x , min — y , width и height . В примере выше у контейнера svg указано следующее view Box = «0 0 24 24» . Значит окно отображения будет начинаться в координатах 0 по оси x и 0 по оси y, а по ширине и высоте будет 24 пикселя. Может указываться как для отдельных элементов, так и для всего контейнера. При помощи этого атрибута можно кадрировать изображение, указывая нужные значения.
- width и height — атрибуты, указывающие размеры svg-элемента. Значением может быть число без указания единиц измерения, тогда браузер будет воспринимать его как пиксели: width = «100» height = «100» . Можно указать в процентах: width = «100 % » height = «100 % » . Могут указываться как оба сразу, так и по отдельности. Если планируете вставлять SVG в HTML кодом, то отдайте предпочтение атрибуту view Box вместо указания ширины и высоты. Тогда при изменении размеров через CSS картинка будет подстраиваться под размеры с сохранением пропорций.
- preserve Aspect Ratio — атрибут, значение которого указывает браузеру нужно ли сохранять пропорции при масштабировании изображения. Если значение отличается от none , то состоит из двух частей: первая отвечает за выравнивания, вторая отвечает за пропорции.
Значения для выравнивания:
- x Min Y Min , x Mid Y Mid , x Max Y Max — выравнивает изображение по левому верхнему углу, по центру по обеим осям или по правому нижнему углу.
- meet — картинка стремиться уместиться целиком с сохранением пропорций. Чем-то похоже на поведение background — size : contain для фона.
- slice — изображение пытается заполнить собой всё доступное пространство. Похоже на background — size : cover .
Подсказки
Скопировать ссылку «Подсказки» Скопировано
💡 Если захотите внести какие-то сложные правки в SVG, а дизайнера под рукой нет, то можно использовать SVG-Edit, SVG-Edit Online, inkscape или Adobe Illustrator.
💡 Всегда перед использованием SVG в проекте прогоняйте его через оптимизатор SVGO. Он удалит всё ненужное, код станет приятнее и будет меньше весить.
💡 С SVG можно взаимодействовать при помощи JavaScript 🤟
Документация и руководство по SVG
Скопировать ссылку «Документация и руководство по SVG» Скопировано
Учебные руководства
Скопировать ссылку «Учебные руководства» Скопировано
Документация MDM Web Docs
Скопировать ссылку «Документация MDM Web Docs» Скопировано
На практике
Скопировать ссылку «На практике» Скопировано
Алёна Батицкая советует
Скопировать ссылку «Алёна Батицкая советует» Скопировано
🛠 В русскоязычном вебе, пожалуй, нет никого, кто знал бы о формате SVG лучше, чем Йоксель. Очень советую заглянуть на её сайт и изучить подборку полезных ссылок, а также её материалы по этой теме.
Svg на html странице
Частная коллекция качественных материалов для тех, кто делает сайты
- Creativo.one2000+ уроков по фотошопу
- Фото-монстр300+ уроков для фотографов
- Видео-смайл200+ уроков по видеообработке
- Жизнь в стиле «Кайдзен» Техники и приемы для гармоничной и сбалансированной жизни
Данная рубрика заменит Вам полноценный «HTML5 учебник». Здесь Вы сможете найти ответы на большинство вопросов, связанных с HTML5.
Расширяем возможности HTML за счёт создания собственных тегов
В этом уроке я покажу процесс создания собственных HTML тегов. Пользовательские теги решают множество задач: HTML документы становятся проще, а строк кода становится меньше.
Определение доступности атрибута HTML5 с помощью JavaScript
Сегодня мы посмотрим, как можно организовать проверку доступности атрибута HTML5 с помощью JavaScript. Проверять будем работу элементов details и summary.
Создан: 30 Августа 2016 Просмотров: 14483 Комментариев: 0
HTML5: API работы с вибрацией
HTML5 — глоток свежего воздуха в современном вебе. Она повлиял не только на классический веб, каким мы знаем его сейчас. HTML5 предоставляет разработчикам ряд API для создания и улучшения сайтов с ориентацией на мобильные устройства. В этой статье мы рассмотрим API для работы с вибрацией.
Создание форм с помощью Webix Framework — 4 практических примера
Веб дизайнеры частенько сталкиваются с необходимостью создания форм. Данная задача не простая, и может вызвать головную боль (особенно если вы делаете что-то не стандартное, к примеру, много-страничную форму). Для упрощения жизни можно воспользоваться фрэймворком. В этой статье я покажу вам несколько практических приёмов для создания форм с помощью фрэймворка Webix.
Знакомство с фрэймворком Webix
В этой статье мы бы хотели познакомить вас с фрэймворком Webix. Для демонстрации возможностей данного инструмента мы создадим интерфейс online аудио плеера. Не обольщайтесь — это всего лишь модель интерфейса. Исходный код доступен в демо и на странице GitHub.
Отключение HTML5 валидации
Бесит валидация, которая добавляется к полям формы, если вы пользуетесь HTML5? Её можно без проблем отключить.
Создан: 29 Апреля 2016 Просмотров: 14284 Комментариев: 1
5 устаревших фишек в HTML5
В этой статье мы рассмотрим пятёрку элементов HTML5, которые устарели и были удалены из спецификации.