Содержание

Чем создать SVG файл? Программы для создания SVG файлов

SVG

Рассмотрим основные варианты, с помощью которых можно создать файл формата SVG (Scalable Vector Graphics File).
Зачастую выполнение данной задачи не потребудет каких-либо особых хитростей, просто скачайте CorelDRAW (для операционной системы Windows) — интерфейс программы не сложный, да и скачать ее вы можете бесплатно.
Если же вы пользуетесь операционной системой Mac — скачайте Adobe Flash как основную для данной платформы.

Вооружившись программой с правильным функционалом, вы наверняка не испытаете проблем с созданием файла SVG.
Мы собрали в общий список все программы походящие под данную задачу для ОС Windows, Mac, Linux и сделали удобную таблицу:

Программы для создания SVG файлов

Чем создать SVG в Windows?

Mac

Linux

Другие программы для формата SVG

Общее описание расширения SVG

Файл SVG представляют из себя двухмерные векторные изображения на основе документов в формате XML. Применяют формат SVG не только при описании двухмерной векторной графики, но и при смешанных векторно- растровых изображений. 

Узнать подробнее что такое формат SVG

Знаете другие программы, которые могут создать SVG? Не смогли разобраться как создать файл? Пишите в комментариях — мы дополним статью и ответим на ваши вопросы.

6 бесплатных онлайн SVG-редакторов: сравнение

От автора: SVG-изображения не так распространены, как наши любимые растровые форматы PNG и JPG, однако преимущества векторной графики привлекают все больше дизайнеров. Дизайнеры все чаще используют векторную графику в своих проектах. Раньше нам нужно было скачивать десктопные приложения типа Adobe Illustrator и Inkscape, но в 2017 проектировать векторную графику можно, не выходя из браузера. Если вы искали бесплатный SVG-редактор, то можете начать с этих шести бесплатный инструментов.

Vectr

Vectr – хороший выбор для новичков и продвинутых пользователей SVG. Интерфейс аккуратный и не переполнен множеством инструментов, которыми вы не будете пользоваться. Редактор хорошо подходит для новичков в векторной иллюстрации. Пользователь не должен теряться среди инструментов, которые непонятно для чего используются. В комплекте идет несколько уроков. Даже если вы полный ноль с SVG, у вас есть возможность быстро научиться.

Однако все вышеперечисленное не означает, что в Vectr скудный функционал. В нем есть весь базовый набор для создания обычного изображения: фигуры, текст, слои, тени, рамки, фоны и т.д. Ему не сравниться с полноценным десктопным редактором, но для быстрых дизайнов и правок этого более чем достаточно. Изображение можно создавать с нуля или загрузить существующее.

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

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

Если в онлайн версии нет нужных вам функций, можно скачать десктоп версию приложения. Редактор доступен для Windows, Mac, Linux и Chromebook.

Возможно, самая крутая функция в Vectr – вы можете делать ссылки и вставлять изображения прямо с сайта Vectr, что делает его эффективным хостингом для SVG. Множество сервисов блокируют загрузку SVG файлов, поэтому это серьезный плюс. Вы можете показывать SVG изображения из Vectr на удаленных сайтах типа WP, Medium, Tumblr и т.д., которые блокируют прямую загрузку SVG, но разрешают ее показ по удаленке.

Vectr позволяет делиться векторной графикой в панели редактора, чтобы другие пользователи могли изменять созданную вами графику. То есть можно, например, сделать SVG-шаблон логотипа, который пользователи уже будут дорабатывать под себя. Все это в браузере.

С этой целью Vectr недавно выпустили версию редактора в виде плагина для WP.

RollApp

В отличие от других инструментов из списка, когда вы заходите на домашнюю страницу RollApp, перед вами не открывается редактор. RollApp – это пакет приложений, а SVG-редактор – лишь одно из приложений. Отличный инструмент, это браузерная версия Inkscape.

Для работы в RollApp нужен аккаунт. Можно зарегистрировать новый или войти с помощью Google, Facebook, Amazon. Очень удобно, я ненавижу создавать тысячи новых аккаунтов лишь для того, чтобы увидеть приложение.

После авторизации откроется следующая страница:

Inkscape во всей красе! Без сомнения, RollApp – самое богатое на функционал приложение из списка. Вы буквально используете Inkscape в браузере! Я не сравнивал все до мелочей, но на вид в этом приложении есть ВСЕ фукнции Incscape, такие как слои, объекты, текст, пути, фильтры, эффекты, расширения и т.д.

Большие файлы обрабатываются не так быстро, ведь действия выполняются на серверах приложения и через интернет. Вкратце – если нужно редактировать большие и сложные файлы, RollApp не будет идеальным вариантом, но для других задач, не входящими в базовый набор, этот редактор подходит лучше других.

BoxySVG

Если вы давно читаете SitePoint, вам должен быть знаком редактор BoxySVG, потому что за последние 12 месяцев мы уже рассказывали про него. Не буду делать детальный обзор, так как это уже сделано в этой статье.

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

Что важно, со времен обзора от Alex в BoxySVG добавили инспектор кода, что делает его одним из самых актуальных SVG инструментов для веб-разработчиков.

Janvas

Пару лет назад Janvas был очень популярным SVG-редактором. К сожалению, последнее время данный редактор не разрабатывается, но даже так он до сих пор работает. Веб движется вперед, а Janvas стоит на месте, поэтому интерес к нему угас. Alex с сайта SitePoint работал с этим инструментом немного в 2013-14 (в том числе с платной версией) и даже отвечал на вопросы некоторое время на странице Google+. Janvas был довольно мощным инструментом.

Главная проблема Janvas – он немного устарел. Браузеры развиваются, а приложения, которые не следуют за браузерами, с каждым днем становятся все менее стабильными. В Janvas множество функций: фигуры, текст, инструменты рисования, пути, маски и слои. Однако пользователи на форумах говорят, что множество этих функций не приносят желаемого результата.

Есть хорошая новость – выйдет новая версия в виде Chrome-приложения. Надеемся, они пофиксят проблемы.

DrawSVG

Возможно, вы уже выбрали себе бесплатный онлайн SVG редактор. Если же нет, то идем дальше. DrawSVG – полностью совместимый SVG-редактор с множеством функций. Мне очень нравится, что у этого приложения дизайн реально заточен под веб и не похож на порт десктопного приложения под браузер. Меню расположено слева, по клику открывается меню второго уровня и т.д.

С помощью DrawSVG можно рисовать, изменять и рендерить объекты. Рисовать можно простые фигуры, есть кривые Безье, прямой и изогнутый текст, множество стилей обводок и заливок и т.д. Также SVG можно экспортировать в PNG.

SVG-edit

SVG-edit – дедушка онлайн редакторов векторной графики, появился в середине 2000-х. Серверного функционала нет, все работает в браузере. Сохранить свою работу без добавления своего собственного функционала нельзя.

Тем не менее, для редактора, чья жизнь началась с сильно ограниченной и незаметной программы для рисования векторной графики, функционал SVG-edit постоянно улучшался.

С помощью SVG-edit можно рисовать простые фигуры (линии, прямоугольники, круги, многоугольники, линии от руки и т.д.), использовать пути, слои, градиенты, можно просматривать и редактировать SVG-исходники, экспортировать в PNG, JPEG, BMP, WEBP и т.д.

Заключение

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

Если вы хотите всерьез заняться SVG, а в этих инструментах нет нужного вам функционала, вы всегда можете скачать десктоп SVG-редактор типа Illustrator или Inkscape. Однако для легкости, быстроты и гибкости все вышеперечисленные редакторы предлагают полезный набор функций.

PS: также можно попробовать Figma. Это больше инструмент для создания UI, а не SVG-редактор. Тем не менее, он имеет отличный набор инструментов и генерирует хорошо оптимизированный код SVG.

Автор: Ada Ivanoff

Источник: https://www.sitepoint.com/

Редакция: Команда webformyself.

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

Хотите узнать, что необходимо для создания сайта?

Посмотрите видео и узнайте пошаговый план по созданию сайта с нуля!

Смотреть

Как вставить svg картинку на свой сайт

Рассмотрим способы вставки SVG изображений: через тег img, инлайново, base64, теги object и embed; а также как вставить SVG картинку через CSS.

Вставка SVG в HTML

SVG через тег img

SVG data URI / base64

SVG через тег object

Вставка SVG через CSS

SVG через свойство background

Вставка SVG в HTML

SVG через тег img

<img src="myImage.svg" alt="myImage">

Inline SVG

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 54 54">
  <g>
    <path d="M27,8c-9.374,0-17,7.626-17,17c0,7.112,4.391,13.412,11,15.9V50c0,0.553,0.447,1,1,1h2v2c0,0.553,0.447,1,1,1h6
    c0.553,0,1-0.447,1-1v-2h2c0.553,0,1-0.447,1-1v-9.1c6.609-2.488,11-8.788,11-15.9C44,15.626,36.374,8,27,8z M30,49
    c-0.553,0-1,0.447-1,1v2h-4v-2c0-0.553-0.447-1-1-1h-1v-5h8v5h40z M31.688,39.242C31.277,39.377,31,39.761,31,40.192V42h-8v-1.808
    c0-0.432-0.277-0.815-0.688-0.95C16.145,37.214,12,31.49,12,25c0-8.271,6.729-15,15-15s15,6.729,15,15
    C42,31.49,37.855,37.214,31.688,39.242z"/>
    <path d="M27,6c0.553,0,1-0.447,1-1V1c0-0.553-0.447-1-1-1s-1,0.447-1,1v4C26,5.553,26.447,6,27,6z"/>
    <path d="M51,24h-4c-0.553,0-1,0.447-1,1s0.447,1,1,1h5c0.553,0,1-0.447,1-1S51.553,24,51,24z"/>
    <path d="M7,24h4c-0.553,0-1,0.447-1,1s0.447,1,1,1h5c0.553,0,1-0.447,1-1S7.553,24,7,24z"/>
    <path d="M43.264,7.322l-2.828,2.828c-0.391,0.391-0.391,1.023,0,1.414c0.195,0.195,0.451,0.293,0.707,0.293
    s0.512-0.098,0.707-0.293l2.828-2.828c0.391-0.391,0.391-1.023,0-1.414S43.654,6.932,43.264,7.322z"/>
    <path d="M12.15,38.436l-2.828,2.828c-0.391,0.391-0.391,1.023,0,1.414c0.195,0.195,0.451,0.293,0.707,0.293
    s0.512-0.098,0.707-0.293l2.828-2.828c0.391-0.391,0.391-1.023,0-1.414S12.541,38.045,12.15,38.436z"/>
    <path d="M41.85,38.436c-0.391-0.391-1.023-0.391-1.414,0s-0.391,1.023,0,1.414l2.828,2.828c0.195,0.195,0.451,0.293,0.707,0.293
    s0.512-0.098,0.707-0.293c0.391-0.391,0.391-1.023,0-1.414L41.85,38.436z"/>
    <path d="M12.15,11.564c0.195,0.195,0.451,0.293,0.707,0.293s0.512-0.098,0.707-0.293c0.391-0.391,0.391-1.023,0-1.414l-2.828-2.828
    c-0.391-0.391-1.023-0.391-1.414,0s-0.391,1.023,0,1.414L12.15,11.564z"/>
    <path d="M27,13c-6.617,0-12,5.383-12,12c0,0.553,0.447,1,1,1s1-0.447,1-1c0-5.514,4.486-10,10-10c0.553,0,1-0.447,1-1
    S27.553,13,27,13z"/>
  </g>
</svg>

SVG data URI / base64

<img src="data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDU0IDU0IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1NCA1NDsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+CjxnPgoJPHBhdGggZD0iTTI3LDhjLTkuMzc0LDAtMTcsNy42MjYtMTcsMTdjMCw3LjExMiw0LjM5MSwxMy40MTIsMTEsMTUuOVY1MGMwLDAuNTUzLDAuNDQ3LDEsMSwxaDF2MmMwLDAuNTUzLDAuNDQ3LDEsMSwxaDYgICBjMC41NTMsMCwxLTAuNDQ3LDEtMXYtMmgxYzAuNTUzLDAsMS0wLjQ0NywxLTF2LTkuMWM2LjYwOS0yLjQ4OCwxMS04Ljc4OCwxMS0xNS45QzQ0LDE1LjYyNiwzNi4zNzQsOCwyNyw4eiBNMzAsNDkgICBjLTAuNTUzLDAtMSwwLjQ0Ny0xLDF2MmgtNHYtMmMwLTAuNTUzLTAuNDQ3LTEtMS0xaC0xdi01aDh3NUgzMHogTTMxLjY4OCwzOS4yNDJDMzEuMjc3LDM5LjM3NywzMSwzOS43NjEsMzEsNDAuMTkyVjQyaC04di0xLjgwOCAgIGMwLTAuNDMyLTAuMjc3LTAuODE1LTAuNjg4LTAuOTVDMTYuMTQ1LDM3LjIxNCwxMiwzMS40OSwxMiwyNWMwLTguMjcxLDYuNzI5LTE1LDE1LTE1czE1LDYuNzI5LDE1LDE1ICAgQzQyLDMxLjQ5LDM3Ljg1NSwzNy4yMTQsMzEuNjg4LDM5LjI0MnoiIGZpbGw9IiMwMDAwMDAiLz4KCTxwYXRoIGQ9Ik0yNyw2YzAuNTUzLDAsMS0wLjQ0NywxLTFWMWMwLTAuNTUzLTAuNDQ3LTEtMS0xcy0xLDAuNDQ3LTEsMXY0QzI2LDUuNTUzLDI2LjQ0Nyw2LDI3LDZ6IiBmaWxsPSIjMDAwMDAwIi8+Cgk8cGF0aCBkPSJNNTEsMjRoLTRjLTAuNTUzLDAtMSwwLjQ0Ny0xLDFzMC40NDcsMSwxLDFoNGMwLjU1MywwLDEtMC40NDcsMS0xUzUxLjU1MywyNCw1MSwyNHoiIGZpbGw9IiMwMDAwMDAiLz4KCTxwYXRoIGQ9Ik03LDI0SDNjLTAuNTUzLDAtMSwwLjQ0Ny0xLDFzMC40NDcsMSwxLDFoNGMwLjU1MywwLDEtMC40NDcsMS0xUzcuNTUzLDI0LDcsMjR6IiBmaWxsPSIjMDAwMDAwIi8+Cgk8cGF0aCBkPSJNNDMuMjY0LDcuMzIybC0yLjgyOCwyLjgyOGMtMC4zOTEsMC4zOTEtMC4zOTEsMS4wMjMsMCwxLjQxNGMwLjE5NSwwLjE5NSwwLjQ1MSwwLjI5MywwLjcwNywwLjI5MyAgIHMwLjUxMi0wLjA5OCwwLjcwNy0wLjI5M2wyLjgyOC0yLjgyOGMwLjM5MS0wLjM5MSwwLjM5MS0xLjAyMywwLTEuNDE0UzQzLjY1NCw2LjkzMiw0My4yNjQsNy4zMjJ6IiBmaWxsPSIjMDAwMDAwIi8+Cgk8cGF0aCBkPSJNMTIuMTUsMzguNDM2bC0yLjgyOCwyLjgyOGMtMC4zOTEsMC4zOTEtMC4zOTEsMS4wMjMsMCwxLjQxNGMwLjE5NSwwLjE5NSwwLjQ1MSwwLjI5MywwLjcwNywwLjI5MyAgIHMwLjUxMi0wLjA5OCwwLjcwNy0wLjI5M2wyLjgyOC0yLjgyOGMwLjM5MS0wLjM5MSwwLjM5MS0xLjAyMywwLTEuNDE0UzEyLjU0MSwzOC4wNDUsMTIuMTUsMzguNDM2eiIgZmlsbD0iIzAwMDAwMCIvPgoJPHBhdGggZD0iTTQxLjg1LDM4LjQzNmMtMC4zOTEtMC4zOTEtMS4wMjMtMC4zOTEtMS40MTQsMHMtMC4zOTEsMS4wMjMsMCwxLjQxNGwyLjgyOCwyLjgyOGMwLjE5NSwwLjE5NSwwLjQ1MSwwLjI5MywwLjcwNywwLjI5MyAgIHMwLjUxMi0wLjA5OCwwLjcwNy0wLjI5M2MwLjM5MS0wLjM5MSwwLjM5MS0xLjAyMywwLTEuNDE0TDQxLjg1LDM4LjQzNnoiIGZpbGw9IiMwMDAwMDAiLz4KCTxwYXRoIGQ9Ik0xMi4xNSwxMS41NjRjMC4xOTUsMC4xOTUsMC40NTEsMC4yOTMsMC43MDcsMC4yOTNzMC41MTItMC4wOTgsMC43MDctMC4yOTNjMC4zOTEtMC4zOTEsMC4zOTEtMS4wMjMsMC0xLjQxNGwtMi44MjgtMi44MjggICBjLTAuMzkxLTAuMzkxLTEuMDIzLTAuMzkxLTEuNDE0LDBzLTAuMzkxLDEuMDIzLDAsMS40MTRMMTIuMTUsMTEuNTY0eiIgZmlsbD0iIzAwMDAwMCIvPgoJPHBhdGggZD0iTTI3LDEzYy02LjYxNywwLTEyLDUuMzgzLTEyLDEyYzAsMC41NTMsMC40NDcsMSwxLDFzMS0wLjQ0NywxLTFjMC01LjUxNCw0LjQ4Ni0xMCwxMC0xMGMwLjU1MywwLDEtMC40NDcsMS0xICAgUzI3LjU1MywxMywyNywxM3oiIGZpbGw9IiMwMDAwMDAiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K" />

Закодированное SVG изображение будет начинаться с:

data: image/svg+xml; utf8; base64,

SVG через тег object

<object type="image/svg+xml" data="myImage.svg"></object>

SVG через тег embed

<embed src="myImage.svg"></embed>

Вставка SVG в CSS через свойство background

SVG через свойство background

.svg-background {
  width: 80px;
  height: 80px; 
  background: url('idea.svg') no-repeat center;
}

Inline SVG CSS background

.svg-inline-css {
  background: url("data: image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 54 54'%3E%3Cg%3E%3Cpath d='M27,8c-9.374,0-17,7.626-17,17c0,7.112,4.391,13.412,11,15.9V50c0,0.553,0.447,1,1,1h2v2c0,0.553,0.447,1,1,1h6 c0.553,0,1-0.447,1-1v-2h2c0.553,0,1-0.447,1-1v-9.1c6.609-2.488,11-8.788,11-15.9C44,15.626,36.374,8,27,8z M30,49 c-0.553,0-1,0.447-1,1v2h-4v-2c0-0.553-0.447-1-1-1h-1v-5h8v5h40z M31.688,39.242C31.277,39.377,31,39.761,31,40.192V42h-8v-1.808 c0-0.432-0.277-0.815-0.688-0.95C16.145,37.214,12,31.49,12,25c0-8.271,6.729-15,15-15s15,6.729,15,15 C42,31.49,37.855,37.214,31.688,39.242z'/%3E%3Cpath d='M27,6c0.553,0,1-0.447,1-1V1c0-0.553-0.447-1-1-1s-1,0.447-1,1v4C26,5.553,26.447,6,27,6z'/%3E%3Cpath d='M51,24h-4c-0.553,0-1,0.447-1,1s0.447,1,1,1h5c0.553,0,1-0.447,1-1S51.553,24,51,24z'/%3E%3Cpath d='M7,24h4c-0.553,0-1,0.447-1,1s0.447,1,1,1h5c0.553,0,1-0.447,1-1S7.553,24,7,24z'/%3E%3Cpath d='M43.264,7.322l-2.828,2.828c-0.391,0.391-0.391,1.023,0,1.414c0.195,0.195,0.451,0.293,0.707,0.293 s0.512-0.098,0.707-0.293l2.828-2.828c0.391-0.391,0.391-1.023,0-1.414S43.654,6.932,43.264,7.322z'/%3E%3Cpath d='M12.15,38.436l-2.828,2.828c-0.391,0.391-0.391,1.023,0,1.414c0.195,0.195,0.451,0.293,0.707,0.293 s0.512-0.098,0.707-0.293l2.828-2.828c0.391-0.391,0.391-1.023,0-1.414S12.541,38.045,12.15,38.436z'/%3E%3Cpath d='M41.85,38.436c-0.391-0.391-1.023-0.391-1.414,0s-0.391,1.023,0,1.414l2.828,2.828c0.195,0.195,0.451,0.293,0.707,0.293 s0.512-0.098,0.707-0.293c0.391-0.391,0.391-1.023,0-1.414L41.85,38.436z'/%3E%3Cpath d='M12.15,11.564c0.195,0.195,0.451,0.293,0.707,0.293s0.512-0.098,0.707-0.293c0.391-0.391,0.391-1.023,0-1.414l-2.828-2.828 c-0.391-0.391-1.023-0.391-1.414,0s-0.391,1.023,0,1.414L12.15,11.564z'/%3E%3Cpath d='M27,13c-6.617,0-12,5.383-12,12c0,0.553,0.447,1,1,1s1-0.447,1-1c0-5.514,4.486-10,10-10c0.553,0,1-0.447,1-1 S27.553,13,27,13z'/%3E%3C/g%3E%3C/svg%3E") no-repeat center;
  width: 80px; height: 80px; background-size: 80px;
}

Свойство background будет начинаться с

data: image/svg+xml, %3Csvg

SVG data URI / base64

.svg-base64-CSS { 
  background-image: url("data:image/svg+xml; utf8; base64, PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDU0IDU0IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1NCA1NDsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+CjxnPgoJPHBhdGggZD0iTTI3LDhjLTkuMzc0LDAtMTcsNy42MjYtMTcsMTdjMCw3LjExMiw0LjM5MSwxMy40MTIsMTEsMTUuOVY1MGMwLDAuNTUzLDAuNDQ3LDEsMSwxaDF2MmMwLDAuNTUzLDAuNDQ3LDEsMSwxaDYgICBjMC41NTMsMCwxLTAuNDQ3LDEtMXYtMmgxYzAuNTUzLDAsMS0wLjQ0NywxLTF2LTkuMWM2LjYwOS0yLjQ4OCwxMS04Ljc4OCwxMS0xNS45QzQ0LDE1LjYyNiwzNi4zNzQsOCwyNyw4eiBNMzAsNDkgICBjLTAuNTUzLDAtMSwwLjQ0Ny0xLDF2MmgtNHYtMmMwLTAuNTUzLTAuNDQ3LTEtMS0xaC0xdi01aDh3NUgzMHogTTMxLjY4OCwzOS4yNDJDMzEuMjc3LDM5LjM3NywzMSwzOS43NjEsMzEsNDAuMTkyVjQyaC04di0xLjgwOCAgIGMwLTAuNDMyLTAuMjc3LTAuODE1LTAuNjg4LTAuOTVDMTYuMTQ1LDM3LjIxNCwxMiwzMS40OSwxMiwyNWMwLTguMjcxLDYuNzI5LTE1LDE1LTE1czE1LDYuNzI5LDE1LDE1ICAgQzQyLDMxLjQ5LDM3Ljg1NSwzNy4yMTQsMzEuNjg4LDM5LjI0MnoiIGZpbGw9IiMwMDAwMDAiLz4KCTxwYXRoIGQ9Ik0yNyw2YzAuNTUzLDAsMS0wLjQ0NywxLTFWMWMwLTAuNTUzLTAuNDQ3LTEtMS0xcy0xLDAuNDQ3LTEsMXY0QzI2LDUuNTUzLDI2LjQ0Nyw2LDI3LDZ6IiBmaWxsPSIjMDAwMDAwIi8+Cgk8cGF0aCBkPSJNNTEsMjRoLTRjLTAuNTUzLDAtMSwwLjQ0Ny0xLDFzMC40NDcsMSwxLDFoNGMwLjU1MywwLDEtMC40NDcsMS0xUzUxLjU1MywyNCw1MSwyNHoiIGZpbGw9IiMwMDAwMDAiLz4KCTxwYXRoIGQ9Ik03LDI0SDNjLTAuNTUzLDAtMSwwLjQ0Ny0xLDFzMC40NDcsMSwxLDFoNGMwLjU1MywwLDEtMC40NDcsMS0xUzcuNTUzLDI0LDcsMjR6IiBmaWxsPSIjMDAwMDAwIi8+Cgk8cGF0aCBkPSJNNDMuMjY0LDcuMzIybC0yLjgyOCwyLjgyOGMtMC4zOTEsMC4zOTEtMC4zOTEsMS4wMjMsMCwxLjQxNGMwLjE5NSwwLjE5NSwwLjQ1MSwwLjI5MywwLjcwNywwLjI5MyAgIHMwLjUxMi0wLjA5OCwwLjcwNy0wLjI5M2wyLjgyOC0yLjgyOGMwLjM5MS0wLjM5MSwwLjM5MS0xLjAyMywwLTEuNDE0UzQzLjY1NCw2LjkzMiw0My4yNjQsNy4zMjJ6IiBmaWxsPSIjMDAwMDAwIi8+Cgk8cGF0aCBkPSJNMTIuMTUsMzguNDM2bC0yLjgyOCwyLjgyOGMtMC4zOTEsMC4zOTEtMC4zOTEsMS4wMjMsMCwxLjQxNGMwLjE5NSwwLjE5NSwwLjQ1MSwwLjI5MywwLjcwNywwLjI5MyAgIHMwLjUxMi0wLjA5OCwwLjcwNy0wLjI5M2wyLjgyOC0yLjgyOGMwLjM5MS0wLjM5MSwwLjM5MS0xLjAyMywwLTEuNDE0UzEyLjU0MSwzOC4wNDUsMTIuMTUsMzguNDM2eiIgZmlsbD0iIzAwMDAwMCIvPgoJPHBhdGggZD0iTTQxLjg1LDM4LjQzNmMtMC4zOTEtMC4zOTEtMS4wMjMtMC4zOTEtMS40MTQsMHMtMC4zOTEsMS4wMjMsMCwxLjQxNGwyLjgyOCwyLjgyOGMwLjE5NSwwLjE5NSwwLjQ1MSwwLjI5MywwLjcwNywwLjI5MyAgIHMwLjUxMi0wLjA5OCwwLjcwNy0wLjI5M2MwLjM5MS0wLjM5MSwwLjM5MS0xLjAyMywwLTEuNDE0TDQxLjg1LDM4LjQzNnoiIGZpbGw9IiMwMDAwMDAiLz4KCTxwYXRoIGQ9Ik0xMi4xNSwxMS41NjRjMC4xOTUsMC4xOTUsMC40NTEsMC4yOTMsMC43MDcsMC4yOTNzMC41MTItMC4wOTgsMC43MDctMC4yOTNjMC4zOTEtMC4zOTEsMC4zOTEtMS4wMjMsMC0xLjQxNGwtMi44MjgtMi44MjggICBjLTAuMzkxLTAuMzkxLTEuMDIzLTAuMzkxLTEuNDE0LDBzLTAuMzkxLDEuMDIzLDAsMS40MTRMMTIuMTUsMTEuNTY0eiIgZmlsbD0iIzAwMDAwMCIvPgoJPHBhdGggZD0iTTI3LDEzYy02LjYxNywwLTEyLDUuMzgzLTEyLDEyYzAsMC41NTMsMC40NDcsMSwxLDFzMS0wLjQ0NywxLTFjMC01LjUxNCw0LjQ4Ni0xMCwxMC0xMGMwLjU1MywwLDEtMC40NDcsMS0xICAgUzI3LjU1MywxMywyNywxM3oiIGZpbGw9IiMwMDAwMDAiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K"); 
  width: 80px; height: 80px; background-size: 80px;
}

Будет начинаться с

data: image/svg+xml; utf8; base64,

Полезные ссылки

  • Как изменить цвет svg
  • Анимация svg
  • Полезный сервис для кодирования svg

Как вставить svg в html. Вставляем inline svg в html-код

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<svg>
  <symbol viewBox="0 0 611.989 611.988">
    <g>
      <g>
        <g>
          <path d="M305.994,417.769c-30.85,0-55.887,25.037-55.887,55.887s25.038,55.887,55.887,55.887s55.887-25.037,55.887-55.887
                   S336.843,417.769,305.994,417.769z M605.436,222.369C530.697,133.434,421.549,82.446,305.994,82.446
                   S81.309,133.434,6.551,222.369c-9.93,11.811-8.402,29.434,3.428,39.363c5.234,4.396,11.587,6.558,17.939,6.558
                   c7.973,0,15.891-3.391,21.423-9.967c64.084-76.248,157.639-119.989,256.652-119.989c99.013,0,192.568,43.741,256.651,119.971
                   c5.533,6.576,13.45,9.967,21.424,9.967c6.353,0,12.724-2.143,17.958-6.558C613.837,251.802,615.366,234.161,605.436,222.369z
                   M305.994,194.22c-82.545,0-160.489,36.419-213.879,99.926c-9.929,11.811-8.402,29.434,3.428,39.363
                   c5.234,4.396,11.605,6.558,17.958,6.558c7.973,0,15.891-3.391,21.405-9.967c42.716-50.838,105.086-79.993,171.089-79.993
                   c66.003,0,128.372,29.155,171.107,79.993c5.533,6.595,13.45,9.967,21.404,9.967c6.353,0,12.724-2.143,17.959-6.558
                   c11.829-9.929,13.356-27.57,3.428-39.363C466.483,230.64,388.539,194.22,305.994,194.22z M305.994,305.994
                   c-49.553,0-96.331,21.852-128.335,59.948c-9.93,11.811-8.402,29.434,3.428,39.363c5.234,4.396,11.605,6.557,17.958,6.557
                   c7.973,0,15.891-3.39,21.405-9.966c21.368-25.429,52.552-40.016,85.544-40.016s64.177,14.587,85.544,40.016
                   c5.533,6.595,13.45,9.966,21.405,9.966c6.353,0,12.724-2.142,17.958-6.557c11.83-9.93,13.357-27.553,3.428-39.363
                   C402.324,327.846,355.546,305.994,305.994,305.994z"/>
        </g>
      </g>
    </g>
  </symbol>
</svg>
 
<div>
  <div>
    <svg>
      <use xlink:href="#icon1"></use>
    </svg>
  </div>
  <div>
    Lorem ipsum dolor sit amet consectetur, adipisicing elit. Corrupti, laudantium.
  </div>
</div>
<div>
  <div>
    <svg>
      <use xlink:href="#icon1"></use>
    </svg>
  </div>
  <div>
    Lorem ipsum dolor sit amet consectetur, adipisicing elit. Corrupti, laudantium.
  </div>
</div>

за и против / Блог компании HTML Academy / Хабр

Ранее в нашем блоге мы поднимали тему создания качественных веб-интерфейсов, в частности в одном из предыдущих топиков рассматривался вопрос правильного использования анимаций. В сегодняшнем материале речь пойдёт о технологии SVG, принципах работы с этой технологией, её плюсах и минусах. Кроме того, мы поинтересовались у отечественных дизайнеров, применяют ли они SVG, и если нет, то почему.

Очень коротко: что такое SVG

SVG (Scalable Vector Graphics) — язык разметки векторной графики, созданный W3C, подмножество языка XML. Предназначен для описания векторной и смешанной (векторно-растровой) двухмерной графики, поддерживает анимацию и интерактивность. В 2001 году вышла версия 1.0, в 2011 — версия 1.1, актуальная ныне. Поддержка браузерами хорошая, но есть нюансы в IE, пикселизация при увеличении в Opera Mini и Opera Mobile 12.1.

Плюсы и сложности применения SVG

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

Создать не просто красивый, но действительно хороший дизайн веб-страницы без понимания того, как эта страница будет загружаться, показываться в браузере, адаптироваться к размерам вьюпорта, меняться при модификации контента, просто невозможно. Исходя из этого, можно сказать, что веб-дизайнер — это техническая специальность (возможно, суть этой работы лучше передаёт термин «веб-инженер»), по большей части подразумевающая использование логики и знаний, и лишь малой толикой которой является художественное творчество. Иными словами, плох тот веб-дизайнер, который совсем не умеет верстать.

Разобравшись с тем, кем на самом деле является современный дизайнер, мы можем переходить к обсуждению плюсов, которые такие специалисты могут извлечь из использования технологии SVG. Вкратце, её применение помогает увеличить скорость и качество работы: дизайнеру приходится выполнять меньше действий самому, что уменьшает затраты времени на различных этапах создания проекта.

Рассмотрим список плюсов SVG подробнее:

SVG легко модифицируется (причём, как в графическом редакторе, так и на самой странице средствами CSS). Поменять расположение, форму, размер, пропорции, цвет, заливку и все прочие свойства составляющих частей изображения проще, чем в случае с растровой графикой. При работе с растром придётся хранить «исходник» в формате со слоями, все изменения делать в нём, экспортировать. С SVG обычно необходимости в «исходнике» просто нет.

Для экранов с повышенной плотностью пикселей достаточно одного изображения. В случае с растровой графикой на данный момент (весна 2015 г.) нужно, минимум, три (!) версии картинки: 100% макетного размера, 200% и 300%. В случае использования SVG, достаточно одной версии — как и для любого векторного формата, пиксели, нужные для показа изображения, «возникают» непосредственно перед показом, исходя из необходимого пиксельного размера.

SVG быстро загружается. Да-да, ведь, как мы выяснили выше, дизайнеры должны думать и о скорости загрузки страницы тоже, ведь чем больше времени проходит от отправки запроса до показа страницы, тем ниже конверсия проекта. Во-первых, SVG-файлы, как правило, имеют меньший размер файла, чем их растровые версии (исключения составляют изображения малого пиксельного размера и сложные векторные изображения со множеством форм). Во-вторых, в один SVG-файл можно добавить несколько версий изображения и показывать их по определённым условиям (уменьшение количества запросов к серверу). В-третьих, в SVG можно использовать «клонирование» — единожды прописать форму (градиент, текстуру) и многократно использовать её, ссылаясь на оригинал. Есть, правда, и минус: отрисовка SVG в браузере чуть медленнее, чем показ растрового изображения, но чтобы заметить эту разницу, нужно сравнивать большие и сложные изображения.

SVG легко сделать адаптивным. В том случае, когда необходимо на узких вьюпортах показывать логотип сайта в упрощённом варианте, SVG позволяет добиться этого всего за один запрос к серверу.

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

Свободно распространяемое ПО. Для работы с SVG не обязательно использовать Adobe Illustrator (как стандарт в мире векторной графики), достаточно свободно распространяемого Inkscape. Есть и ряд других инструментов.

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

Юрий Ветров, руководитель отдела проектирования и дизайна Mail.Ru

Простой ответ — дизайнеру мало научиться готовить SVG, нужно чтобы разработчики могли его использовать в продукте, а это не так-то просто, нужно менять многое в технологических решениях. Во-вторых, сам процесс работы с вектором нужно оптимизировать, чтобы SVG было комфортно экспортировать из использующихся графических редакторов. Т.е. каких-то предубеждений нет, просто надо значительно перестраивать процесс работы, а явных выхлопов для бизнеса это особых не даёт. Т.е. это инфраструктурная задача, которая в меньшем приоритете всегда. Все, конечно, перейдут на него со временем, но проблемы примерно как описал выше.


Денис Кортунов, UX-директор Acronis

Это вопрос не совсем к дизайнерам, но к веб-технологам или фронтенд-разработчикам. Сейчас немало дизайнеров изначально делают дизайн в векторе, и нет никакой проблемы представлять графику в виде SVG. Основная проблема — совместимость с разными браузерами. Такие картинки зачастую просто не отображаются и нужно много «танцев с бубнами». Распространённая альтернатива SVG — использование шрифтов. Это «хак», позволяющий использовать векторные изображения в вебе.

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


Дмитрий Зимин, менеджер проекта «Киноход»

Что касается того, «почему не используют SVG», я могу говорить только за наш проект. У нас есть особенность: большая часть контента — это фотографии (постеры, кадры из фильма, превью ролика).

Интерфейс в мобильном приложении хотим перевести на вектор, потому что нарезать картинки в трёх разрешениях (х.png, @2x.png, @3x.png) и утомительно, и провоцирует на ошибки. Но, пока банально не дошли руки.


Артём Геллер, главный разработчик сайта Kremlin.ru

В своих проектах мы активно используем SVG, однако у этой технологии есть и определённые ограничения. Для нас они, конечно, перекрываются пользой, которую несёт в себе SVG — нам не нужна сложная анимация в элементах, да и что-то красить в них нужно не так часто.

При этом, мы заменяем элементы в SVG на PNG, в том случае, если с этим форматом конкретная версия браузера не дружит.


Никита Михеенков, директор по развитию Nimax Design

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

Вот несколько примеров с векторной графикой: один, два, три.

Вместо заключения: как делать SVG

Конечно, дизайнеру не нужно держать в голове все возможные технические мелочи разработки проекта, но соблюдение нескольких простых принципов, всё же, необходимо:

  1. Лучше стараться обходиться как можно меньшим числом точек. Чем меньше точек, тем, как правило, проще редактировать файл и тем меньших он будет размеров. Если используются формы, нарисованные другими специалистами, имеет смысл их упростить — уменьшить количество как опорных, так и управляющих точек. В Adobe Illustrator наиболее оптимальные (с технической стороны) контуры получаются при рисовании инструментом «перо» при грамотном выборе типа точек. Наименее оптимальные, обычно, являются результатом преобразования нарисованных кистью линий в векторные участки, или бездумной трассировки.



    Изображение 1

    (Получено от дизайнера)

    83 Кб
    Изображение 2

    (оптимизировано количество точек)

    28 Кб
    Изображение 2

    (оптимизирована разметка)

    10 Кб
  2. Следует использовать пиксельную сетку и стараться располагать контуры так, чтобы их края были ровно на границе пикселей или на 1/2 пикселя. Если планируется изменения размеров элементов (например, иконки), то нужно проверить, как изменённый размер ляжет на пиксельную сетку. При этом важно помнить о том, что экран — это среда с серьёзными ограничениями, на любом размере попасть в пиксели невозможно, однако для наиболее частых размеров — нужно постараться.



    Формы выровнены по пиксельной сетке

    (400%)
    Формы не выровнены по пиксельной сетке

    (400%)
  3. Стоит создавать и сохранять SVG в том виде, в котором планируется дальнейшее использование этих элементов в дизайне. Иногда встречается ситуация, при которой к PSD-макету приложены использованные SVG, но в самом макете использована векторная форма с какими-то добавлениями (текстовой слой, что-то дорисовано растром, наложен какой-либо эффект). Подобный подход может исключить возможность использовать векторную графику для такого элемента дизайна.
  4. Нужно использовать как можно меньше фигур, группировать только необходимое. Следует удалять фигуры, которые не являются составными частями картинки или невидимы (прикрыты другими фигурами).
  5. Все символы, текстуры и рисунки кистью лучше преобразовывать в обычные векторные участки, не применяя растровые эффекты (Adobe Illustrator) и режимы наложения.

Полезные ссылки

Чем открыть файл в формате SVG – лучшие программы и онлайн-редакторы

Большинство популярных графических редакторов позволяет сохранять изображения в нескольких форматах. Если программа работает с растровой графикой, то для сохранения файлов предлагаются растровые форматы, если с векторной, то, соответственно, векторные форматы. Однако есть растровые редакторы, которые поддерживают экспорт рисунков в векторные и смешанные форматы. Таковым, к примеру, является Adobe Photoshop, умеющий экспортировать рисунок в SVG – достаточно распространенный сегодня формат, способный хранить как растровую, так и векторную графику.

Что за формат SVG и где используется

Разработанный в 2001 году Консорциумом Всемирной паутины, формат SVG представляет собой не совсем обычный документ. В его основу положены языки разметки VML и PGML, то есть речь идет, по сути, о текстовом файле. При этом редакторы и браузеры интерпретируют SVG как изображение, которое может быть как статическим, так и анимированным. Будучи наиболее распространенным среди прочих форматов, предназначенных для хранения векторной графики, в настоящее время SVG активно используется для хранения и распространения векторных и смешанных изображений в интернете.

Формат SVG

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

С другой стороны SVG наследует недостатки XML со всеми вытекающими. Формат плохо подходит для создания сложных объектов, так как файлы SVG быстро «набирают» вес, если состоят из множества мелких деталей. Кроме того, для отображения картинки программам нужно читать весь документ, что затрудняет применение формата в картографических приложениях. Среди недостатков формата отмечаем относительно низкую кроссбраузерность и отсутствие хотя бы минимальной поддержки трехмерной графики.

Лучшие редакторы для работы с файлами SVG

Как уже было сказано,

SVG Учебник

SVG — это масштабируемая векторная графика.

SVG определяет векторную графику в формате XML.


Примеры в каждой главе

С помощью нашего редактора «Попробуйте сами» вы можете редактировать SVG и нажимать кнопку, чтобы просмотреть результат.

SVG, пример

Мой первый SVG




Попробуй сам »


Что вы уже должны знать

Прежде чем продолжить, вы должны иметь некоторое общее представление о следующем:

Если вы хотите сначала изучить эти предметы, найдите уроки на нашем
Домашняя страница.


Что такое SVG?

  • SVG — это масштабируемая векторная графика
  • .

  • SVG используется для определения векторной графики для Интернета
  • SVG определяет графику в формате XML
  • Каждый элемент и каждый атрибут в файлах SVG можно анимировать
  • SVG — это рекомендация W3C
  • SVG интегрируется с другими стандартами W3C, такими как DOM и XSL


SVG — это рекомендация W3C

SVG 1.0 стал Рекомендацией W3C 4 сентября 2001 г.

SVG 1.1 стал Рекомендацией W3C 14 января 2003 года.

SVG 1.1 (второе издание) стал рекомендацией W3C 16 августа 2011 года.


Преимущества SVG

Преимущества использования SVG перед другими форматами изображений (например, JPEG
и GIF):

  • Изображения SVG можно создавать и редактировать с помощью любого текстового редактора
  • изображений SVG можно искать, индексировать, создавать сценарии и сжимать
  • изображения SVG масштабируются
  • изображений SVG можно распечатать с высоким качеством при любом разрешении
  • изображения SVG можно масштабировать
  • SVG графика НЕ ​​теряет качества при увеличении или изменении размера
  • SVG — это открытый стандарт
  • файлы SVG — это чистый XML

Создание изображений SVG

изображений SVG можно создать с помощью любого текстового редактора, но
часто удобнее создавать изображения SVG с помощью программы для рисования, например
Inkscape.

.

Примеры SVG


Попробуйте сами

В приведенных ниже примерах код SVG встроен непосредственно в код HTML.

Поддерживается Firefox, Internet Explorer 9, Google Chrome, Opera и
Сафари.


Примеры SVG

Основные фигуры SVG

Круг
Прямоугольник
Прямоугольник с непрозрачностью
Прямоугольник с непрозрачностью 2
Прямоугольник со скругленными углами
Эллипс
Три эллипса друг над другом
Два эллипса
Линия
Трехсторонний многоугольник
Многоугольник с четырьмя стороны
Звезда
Другая звезда
Полилиния
Другая полилиния
Путь
Квадратичная кривая Безье
Написать текст
Повернуть текст
Текст на нескольких строках
Текст как ссылка
Определяет цвет линии, текста или контура (stroke)
Определяет ширину линии, текста или контура (stroke-width)
Определяет различные типы окончаний открытого контура (stroke-linecap)
Определяет пунктирные линии (stroke-dasharray)

Фильтры SVG

feGaussianBlur — эффект размытия
feOffset — сместить прямоугольник, затем наложить оригинал поверх смещенного изображения
feOffset — размыть смещенное изображение
feOffset — сделать тень черной
feOffset — обработать тень как цвет
A feBlend filter
Filter 1
Фильтр 2
Фильтр 3
Фильтр 4
Фильтр 5
Фильтр 6

SVG Градиенты

Эллипс с горизонтальным линейным градиентом от желтого к красному
Эллипс с вертикальным линейным градиентом от желтого к красному
Эллипс с горизонтальным линейным градиентом от желтого к красному и текстом
Эллипс с радиальным градиентом от белого к синему
Другой эллипс с радиальным градиентом от белого к синему

SVG Разное

Прямоугольник, который постоянно исчезает в течение 5 секунд
Растущий прямоугольник, который меняет цвет
Три прямоугольника, которые меняют цвет
Перемещение текста по траектории движения
Перемещение, поворот и масштабирование текста по траектории движения
Перемещение, поворот и масштабирование текста вдоль пути движения + растущий прямоугольник, который изменит цвет
Вращающиеся эллипсы

.

Ссылка SVG

.

Элемент Описание Атрибуты
Создает ссылку вокруг элементов SVG xlink: показать
xlink: активировать
xlink: href
цель
Обеспечивает управление глифами, используемыми для отображения определенных символьных данных. х
y
dx
dy
повернуть
glyphRef
формат
xlink: href
Определяет набор замены для глифов id
Определяет набор кандидатов на замену глифов id
<анимация> Определяет, как атрибут элемента изменяется с течением времени attributeName = «имя целевого атрибута»
by = «значение относительного смещения»
from = «начальное значение»
to = «конечное значение»
dur = «продолжительность»
repeatCount = «количество раз, когда будет иметь место анимация»
Заставляет указанный элемент перемещаться по траектории движения calcMode = «режим интерполяции для анимации.Может быть «дискретным», «линейным», «шаговым», «шлицевым» «
path = «путь движения»
keyPoints = «насколько далеко по траектории движения объект должен переместиться в данный момент времени»
rotate = «применяет преобразование поворота»
xlink: href = «ссылка URI на элемент , который определяет путь движения»
Анимирует атрибут преобразования в целевом элементе, тем самым позволяя анимации управлять перемещением, масштабированием, поворотом и / или перекосом. by = «значение относительного смещения»
from = «начальное значение»
to = «конечное значение»
type = «тип преобразования, значения которого должны изменяться с течением времени.Может принимать значения ‘translate’, ‘scale’, ‘rotate’, ‘skewX’, ‘skewY’ «
<круг> Определяет круг cx = «центр окружности по оси x»
cy = «центр окружности по оси Y»
r = «Радиус круга». Необходимые.

+ атрибуты презентации:
Цвет, заливка, графика

Отсечение — это скрытие того, что обычно было бы нарисовано.Трафарет, определяющий, что нарисовано, а что нет, называется траекторией отсечения clip-path = «указанный путь обрезки пересекается с указанным путем обрезки»
clipPathUnits = «‘userSpaceOnUse’ или ‘objectBoundingBox’. Второе значение делает дочерние единицы частью ограничивающего прямоугольника объекта, который использует маску (по умолчанию: ‘userSpaceOnUse’)»
<цветовой профиль> Задает описание цветового профиля (когда документ оформлен с использованием CSS) local = «уникальный идентификатор для локально сохраненного цветового профиля»
name = «»
render-intent = «авто | восприятие | относительный колориметрический | насыщенность | абсолютный колориметрический»
xlink: href = «URI ресурса профиля ICC»
<курсор> Определяет независимый от платформы пользовательский курсор. x = «верхний левый угол курсора по оси x (по умолчанию 0)»
y = «верхний левый угол курсора по оси Y (по умолчанию 0)»
xlink: href = «URI изображения для использования в качестве курсора
Контейнер для ссылочных элементов
Описание только текстовых элементов контейнера или графических элементов в SVG (агенты пользователя могут отображать текст
как всплывающую подсказку)
<эллипс> Определяет эллипс cx = «центр оси X эллипса»
cy = «центр оси Y эллипса»
rx = «длина радиуса эллипса по оси x».Необходимые.
ry = «длина радиуса эллипса по оси y». Необходимые.

+ атрибуты презентации:
Цвет, заливка, графика

Объединяет два объекта в соответствии с определенным режимом наложения mode = «режимы наложения изображения: нормальный | умножение | экран | затемнение | светлее»
in = «идентифицирует входные данные для данного примитива фильтра: SourceGraphic | SourceAlpha | BackgroundImage | BackgroundAlpha | FillPaint | StrokePaint | »
in2 = «второе входное изображение для операции смешивания»
feColorMatrix SVG фильтр.Применяет матричное преобразование
feComponentTransfer SVG фильтр. Выполняет покомпонентное переназначение данных
feComposite SVG фильтр.
feConvolveMatrix SVG фильтр.
feDiffuseLighting SVG фильтр.
feDisplacementMap SVG фильтр.
feDistantLight SVG фильтр. Определяет источник света
feFlood SVG фильтр.
feFuncA SVG фильтр. Подэлемент feComponentTransfer
feFuncB SVG фильтр.Подэлемент feComponentTransfer
feFuncG SVG фильтр. Подэлемент feComponentTransfer
feFuncR SVG фильтр. Подэлемент feComponentTransfer
feGaussianBlur SVG фильтр. Выполняет размытие по Гауссу на изображении
fe Изображение SVG фильтр.
feMerge SVG фильтр. Создает слои изображения поверх каждого
другое
feMergeNode SVG фильтр. Подэлемент feMerge
feMorphology SVG фильтр. Выполняет «откорма» или «прореживание»
исходная графика
feOffset SVG фильтр.Перемещает изображение относительно его текущей позиции
fePointLight SVG фильтр.
fe Зеркальное освещение SVG фильтр.
feSpotLight SVG фильтр.
feTile SVG фильтр.
feTurbulence SVG фильтр.
фильтр Контейнер для фильтров эффектов
шрифт Определяет шрифт
шрифт Описывает характеристики шрифта
font-face-format
font-face-name
font-face-src
font-face-uri
иностранный объект
Используется для группировки
элементы
id = «название группы»
fill = «цвет заливки для группы»
opacity = «непрозрачность для группы»

+ атрибуты презентации:
Все

глиф Определяет графику для данного глифа
глиф Ссылка Определяет возможный глиф для использования
hkern
<изображение> Определяет изображение x = «верхний левый угол изображения по оси x»
y = «верхний левый угол изображения по оси Y»
.Необходимые.
. Необходимые.
xlink: href = «путь к изображению». Необходимые.

+ атрибуты презентации:
Цвет, графика, изображения, окна просмотра

Определяет строку x1 = «начальная точка x линии»
y1 = «начальная точка y линии»
x2 = «x конечная точка линии»
y2 = «конечная точка линии y»

+ атрибуты представления:
Цвет, заливка, графика, маркеры

<линейный градиент> Определяет линейный градиент.Линейные градиенты заполняют объект с помощью вектора и могут быть определены как горизонтальные, вертикальные или угловые градиенты. id = «уникальный идентификатор, используемый для ссылки на этот шаблон. Требуется для ссылки на него»
gradientUnits = «‘userSpaceOnUse’ или ‘objectBoundingBox’. Используйте поле просмотра или объект для определения относительного положения векторных точек. (По умолчанию ‘objectBoundingBox’)»
gradientTransform = «преобразование, применяемое к градиенту»
x1 = «начальная точка x вектора градиента (по умолчанию число или% — 0%)»
y1 = «начальная точка y вектора градиента.(0% по умолчанию) «
x2 = «конечная точка x вектора градиента. (100% по умолчанию)»
y2 = «конечная точка y вектора градиента. (0% по умолчанию)»
spreadMethod = «панель» или «отражение» или «повтор» «
xlink: href = «ссылка на другой градиент, значения атрибутов которого используются по умолчанию и включены остановки. Рекурсивный»
<маркер> Маркеры можно размещать на вершинах линий, полилиний, многоугольников и путей.Эти элементы могут использовать атрибуты маркера «маркер-начало», «маркер-середина» и «маркер-конец», которые наследуются по умолчанию или могут иметь значение «нет» или URI определенного маркера. Вы должны сначала определить маркер, прежде чем ссылаться на него через его URI. Внутри маркера можно разместить любую форму. Они нарисованы поверх элемента, к которому они прикреплены markerUnits = «‘strokeWidth’ или ‘userSpaceOnUse’. Если используется ‘strokeWidth’, то одна единица равна одной ширине штриха. В противном случае маркер не масштабируется и использует те же единицы просмотра, что и ссылочный элемент (по умолчанию ‘strokeWidth’) «
refx = «позиция, в которой маркер соединяется с вершиной (по умолчанию 0)»
refy = «позиция, в которой маркер соединяется с вершиной (по умолчанию 0)»
orient = «‘auto’ или угол, под которым всегда отображается маркер.’auto’ вычисляет угол, который делает ось x касательной к вершине (по умолчанию 0) «
markerWidth = «ширина маркера (по умолчанию 3)»
markerHeight = «высота маркера (по умолчанию 3)»
viewBox = «точки» видимые «в этой области рисования SVG. 4 значения, разделенные пробелом или запятыми. (мин. x, мин. y, ширина, высота)»

+ атрибуты презентации:
Все

<маска> Маскирование — это комбинация значений непрозрачности и отсечения.Как и при обрезке, вы можете использовать фигуры, текст или контуры для определения участков маски. По умолчанию маска полностью прозрачна, что противоположно плоскости отсечения. Графика в маске определяет степень непрозрачности частей маски maskUnits = «‘userSpaceOnUse’ или ‘objectBoundingBox’. Установите, является ли плоскость отсечения относительно порта или объекта полного обзора (по умолчанию: ‘objectBoundingBox’)»
maskContentUnits = «Используйте второе с процентами, чтобы маскировать графические позиции относительно объекта.’userSpaceOnUse’ или ‘objectBoundingBox’ (по умолчанию: ‘userSpaceOnUse’) «
x = «плоскость отсечения маски (по умолчанию: -10%)»
y = «плоскость отсечения маски (по умолчанию: -10%)»

метаданные Задает метаданные
отсутствующий символ
mpath
<путь> Определяет путь d = «набор команд, определяющих путь»
pathLength = «Если присутствует, путь будет масштабирован так, чтобы вычисленная длина пути точек равнялась этому значению»
transform = «список преобразований»

+ атрибуты представления:
Цвет, заливка, графика, маркеры

<шаблон> Определяет координаты, которые должны отображаться на виде, и размер вида.Затем вы добавляете формы в свой узор. Шаблон повторяется, когда край окна просмотра (область просмотра) достигает id = «уникальный идентификатор, используемый для ссылки на этот шаблон». Необходимые.
patternUnits = «‘userSpaceOnUse’ или ‘objectBoundingBox’. Второе значение делает единицы x, y, ширины, высоты частью (или%) ограничивающего прямоугольника объекта, в котором используется шаблон.»
patternContentUnits = «‘userSpaceOnUse’ или ‘objectBoundingBox'»
patternTransform = «позволяет преобразовать весь шаблон»
x = «смещение шаблона от левого верхнего угла (по умолчанию 0)»
y = «смещение шаблона от верхнего левого угла.(по умолчанию 0) «

viewBox = «точки» видимые «в этой области рисования SVG. 4 значения, разделенные пробелом или запятыми. (мин. x, мин. y, ширина, высота)»
xlink: href = «ссылка на другой шаблон, значения атрибутов которого используются по умолчанию, а все дочерние элементы наследуются. Рекурсивный»

<полигон> Определяет графический объект, содержащий не менее трех сторон. points = «точек многоугольника.Общее количество очков должно быть четным ». Обязательно.
fill-rule = «часть атрибутов представления FillStroke»

+ атрибуты представления:
Цвет, заливка, графика, маркеры

<полилиния> Определяет любую фигуру, состоящую только из прямых линий точек = «точки на ломаной линии». Необходимые.

+ атрибуты презентации:
Цвет, заливка, графика, маркеры

<радиальный градиент> Определяет радиальный градиент.Радиальные градиенты создаются путем взятия круга и плавного изменения значений между ограничителями градиента от точки фокуса к внешнему радиусу. gradientUnits = «‘userSpaceOnUse’ или ‘objectBoundingBox’. Используйте поле просмотра или объект для определения относительного положения векторных точек (по умолчанию ‘objectBoundingBox’)»
gradientTransform = «преобразование, применяемое к градиенту»
cx = «центральная точка градиента (число или% — 50% по умолчанию)»
cy = «центральная точка градиента.(По умолчанию 50%) «
r = «радиус градиента. (по умолчанию 50%)»
fx = «точка фокусировки градиента. (0% по умолчанию)»
fy = «Точка фокусировки градиента. (0% по умолчанию)»
spreadMethod = «панель» или «отражение» или «повтор» «
xlink: href = «Ссылка на другой градиент, значения атрибутов которого используются по умолчанию и включаются остановки. Рекурсивный»
<правильно> Определяет прямоугольник x = «левый верхний угол прямоугольника по оси x»
y = «левый верхний угол прямоугольника по оси Y»
rx = «радиус оси x (для округления элемента)»
ry = «радиус оси Y (для округления элемента)»
.Необходимые.
Необходимые.

+ атрибуты презентации:
Цвет, заливка, графика

скрипт Контейнер для скриптов (например, ECMAScript)
комплект Устанавливает значение
атрибут на указанную продолжительность
<стоп> Упоры для уклона offset = «смещение для этого упора (от 0 до 1/0% до 100%)».Необходимые.
stop-color = «цвет этой остановки»
stop-opacity = «непрозрачность этой остановки (от 0 до 1)»
стиль Позволяет встраивать таблицы стилей непосредственно в SVG
содержание
Создает фрагмент документа SVG x = «верхний левый угол при внедрении (по умолчанию 0)»
y = «верхний левый угол при внедрении (по умолчанию 0)»

viewBox = «точки» видны «в этой области рисования SVG.4 значения, разделенные пробелом или запятыми. (мин. x, мин. y, ширина, высота) «
preserveAspectRatio = «‘none’ или любая из 9 комбинаций ‘xVALYVAL’, где VAL — ‘min’, ‘mid’ или ‘max’. (по умолчанию xMidYMid)»
zoomAndPan = «‘увеличить’ или ‘отключить’. Параметр увеличения позволяет пользователям панорамировать и масштабировать файл (увеличение по умолчанию)»
xml = «внешний элемент должен настроить SVG и его пространство имен: xmlns =» ​​http://www.w3.org/2000/svg «xmlns: xlink =» http://www.w3.org/1999/ xlink «xml: space =» preserve «»

+ атрибуты представления:
Все

переключатель
символ
<текст> Определяет текст x = «список положений оси x.Положение n-й оси X присваивается n-му символу в тексте. Если после того, как позиции закончились, есть дополнительные символы, они помещаются после последнего символа. 0 по умолчанию «
» y = «список положений оси y. (см. x). 0 по умолчанию»
dx = «список длин, который перемещает символы относительно абсолютной позиции последнего нарисованного глифа. (см. x)»
dy = «список длин, который перемещает символы относительно абсолютной позиции последнего нарисованного глифа.(см. x) «
rotate = «список поворотов. n-ый поворот выполняется для n-го символа. Дополнительным символам НЕ присваивается последнее значение поворота»
textLength = «целевая длина текста, между которым программа просмотра SVG попытается отобразить текст, регулируя интервал и / или глифы. (по умолчанию: нормальная длина текста)»
lengthAdjust = «сообщает зрителю, что нужно отрегулировать, чтобы попытаться выполнить визуализацию текста, если длина указана. Два значения: ‘spacing’ и ‘spacingAndGlyphs'»

+ атрибуты представления:
Цвет, FillStroke, Графика, Спецификация шрифта, TextContentElements

textPath
титул Текстовое описание элементов в SVG — не отображается как часть графика.Пользовательские агенты могут отображать текст как всплывающая подсказка
Ссылается на любой элемент в документе SVG и повторно использует его Идентично элементу
Идентичен элементу , но может быть вложен внутри текстовых тегов и внутри себя Идентично элементу
+ дополнительно:
xlink: href = «Ссылка на элемент »
<использовать> Использует URI для ссылки на , или другой графический элемент с уникальным атрибутом id и его репликации.Копия является лишь ссылкой на оригинал, поэтому в документе существует только оригинал. Любое изменение оригинала влияет на все копии. x = «верхний левый угол оси x клонированного элемента»
y = «верхний левый угол оси Y клонированного элемента»

xlink: href = «ссылка URI на клонированный элемент»

+ атрибуты представления:
Все

вид
вкерн

.

Путь SVG


Путь SVG — <путь>

Элемент используется для определения пути.

Для данных пути доступны следующие команды:

  • M = переезд
  • L = линейка
  • H = горизонтальная линия до
  • В = вертикальная линия до
  • C = кривая до
  • S = плавная кривая до
  • Q = квадратичная кривая Безье
  • T = плавная квадратичная кривая Безье до
  • A = эллиптическая дуга
  • Z = ближний путь

Примечание: Все вышеперечисленные команды также могут быть выражены нижним буквы.Заглавные буквы означают абсолютно позиционирование, строчные буквы — относительно позиционирование.


Пример 1

Пример ниже определяет путь, который начинается в позиции 150,0 с линией до позиции 75,200. затем оттуда линия к 225,200 и, наконец, закрытие пути обратно к 150,0:

К сожалению, ваш браузер не поддерживает встроенный SVG.

Вот код SVG:

Пример

Попробуй сам »



Пример 2

кривых Безье используются для моделирования плавных кривых, которые можно масштабировать.
бесконечно.Обычно пользователь выбирает две конечные точки и один или два элемента управления.
точки. Кривая Безье с одной контрольной точкой называется квадратичной кривой Безье.
а вид с двумя контрольными точками называется кубическим.

В следующем примере создается квадратичная кривая Безье, где A и C —
начальная и конечная точки, B — контрольная точка:

ABC
К сожалению, ваш браузер не поддерживает встроенный SVG.

Вот код SVG:

Пример


<путь d = "M 100 350 l 150 -300" ход = "красный"
stroke-width = «3» fill = «none» /> stroke-width = «3» fill = «none» /> fill = «none» />
<путь d = "M 100 350 q 150-300 300 0" ход = "синий"
stroke-width = «5» fill = «none» />







text-anchor = «middle»>
A
Б
C

Попробуй сам »

Комплекс? ДА!!!! Из-за сложности рисования контуров это
настоятельно рекомендуется использовать редактор SVG для создания сложной графики.

.