- Заливка и обводка
- Атрибуты заливки и обводки (Fill and Stroke Attributes)
- Раскраска (Painting)
- Обводка (Stroke)
- Использование CSS (Using CSS)
- Found a content problem with this page?
- MDN
- Support
- Our communities
- Developers
- stroke
- Пример
- Как пишется
- Подсказки
- На практике
- Realetive советует
- SVG: используем CSS для определения внешнего вида
- Свойства для SVG элементов
- Реализация определения стилей для SVG элементов
- Атрибуты представления
- Встраиваемые стили
- Внутренняя таблица стилей
- Внешняя таблица стилей
- Группировка элементов
- 5 последних уроков рубрики «Разное»
- Как выбрать хороший хостинг для своего сайта?
- Как разместить свой сайт на хостинге? Правильно выбранный хороший хостинг — это будущее Ваших сайтов
- Разработка веб-сайтов с помощью онлайн платформы Wrike
Заливка и обводка
Есть несколько способов раскрасить фигуры SVG (в т.ч. с указанием атрибутов объекта), используя инлайн-CSS, встроенную CSS-секцию, или внешний файл CSS. Большая часть SVG, которую вы встретите в интернете, использует встроенный CSS, однако преимущества и недостатки есть у каждого типа.
Атрибуты заливки и обводки (Fill and Stroke Attributes)
Раскраска (Painting)
Основная раскраска может быть сделана установкой двух свойств на ноде — fill и stroke. Fill — устанавливает цвет внутри объекта, а stroke задаёт цвет линии, которая рисуется вокруг объекта. Вы можете использовать CSS-наименования цветов, что и в HTML — названия цветов (например, red), rgb-значения, hex-значения, rgba-значения и т.д.
rect x="10" y="10" width="100" height="100" stroke="blue" fill="purple" fill-opacity="0.5" stroke-opacity="0.8"/>
Кроме того, вы можете задать прозрачность заливке и обводке по отдельности в SVG. Их прозрачность управляется атрибутами fill-opacity, stroke-opacity.
Примечание: Замечание: в Firefox 3+ допустимы rgba-значения и это даёт такой же эффект прозрачности, но для совместимости с другими просмотрщиками часто лучше определить прозрачность обводки/заливки отдельно. Если вы укажете и rgba-значение и значение fill-opacity/stroke-opacity — будут применены оба.
Обводка (Stroke)
Кроме цветовых свойств обводки, есть несколько атрибутов, управляющих способом обводки.
svg width="160" height="140" xmlns="http://www.w3.org/2000/svg" version="1.1"> line x1="40" x2="120" y1="20" y2="20" stroke="black" stroke-width="20" stroke-linecap="butt"/> line x1="40" x2="120" y1="60" y2="60" stroke="black" stroke-width="20" stroke-linecap="square"/> line x1="40" x2="120" y1="100" y2="100" stroke="black" stroke-width="20" stroke-linecap="round"/> svg>
Свойство stroke-width определяет ширину обводки. Штрихи обводки рисуются вокруг пути. В примере выше путь изображён розовым, а обводка — черным.
Второй атрибут, влияющий на обводку — свойство stroke-linecap. Демонстрируется выше. Свойство управляет отображением концов линий.
Есть три возможных значения для stroke-linecap:
- butt обрывает линию под прямым углом к направлению обводки и делает это сразу по окончании линии.
- square в основном действует также, но немного растягивает обводку по краям пути. Длина, на которую продлевается обводка — это половина заданного значения stroke-width.
- round задаёт закруглённые углы по краям обводки. Радиус этих кривых также управляется параметром stroke-width.
Используйте stroke-linejoin , чтобы определить, как соединять обводку двух сегментов линии.
svg width="160" height="280" xmlns="http://www.w3.org/2000/svg" version="1.1"> polyline points="40 60 80 20 120 60" stroke="black" stroke-width="20" stroke-linecap="butt" fill="none" stroke-linejoin="miter"/> polyline points="40 140 80 100 120 140" stroke="black" stroke-width="20" stroke-linecap="round" fill="none" stroke-linejoin="round"/> polyline points="40 220 80 180 120 220" stroke="black" stroke-width="20" stroke-linecap="square" fill="none" stroke-linejoin="bevel"/> svg>
Каждая из этих полилиний имеет два сегмента. Соединение, где они встречаются, управляется атрибутом stroke-linejoin . Есть три возможных значения для этого атрибута:
- miter продолжает линию обводки дальше её обычной ширины, чтобы создать единственный квадратный угол.
- round создаёт закруглённый сегмент линии
- bevel создаёт новый угол для помощи в переходе между двумя сегментами
Наконец, вы можете использовать пунктирные линии в обводке, определив атрибут stroke-dasharray .
svg width="200" height="150" xmlns="http://www.w3.org/2000/svg" version="1.1"> path d="M 10 75 Q 50 10 100 75 T 190 75" stroke="black" stroke-linecap="round" stroke-dasharray="5,10,5" fill="none"/> path d="M 10 75 L 190 75" stroke="red" stroke-linecap="round" stroke-width="1" stroke-dasharray="5,5" fill="none"/> svg>
В качестве аргумента атрибут stroke-dasharray принимает последовательность чисел, разделённых запятой.
Примечание: Замечание: в отличие от путей, эти числа ДОЛЖНЫ быть разделены запятыми (пробелы игнорируются).
Первое число определяет длину штриха, второе — длину между штрихами. В примере выше, второй путь чередует заливку штрихом в 5 пикселей, затем 5 пустых пикселей перед следующим штрихом в 5 пикселей. Вы можете задать больше чисел, если хотите более сложную систему штрихов. В первом примере задано 3 числа и в этом случае рендер берёт эти числа дважды, чтобы создать чётный паттерн. Т.о. первый путь отображается 5 закрашенными, 10 пустыми, 5 закрашенными и затем ещё раз 5 пустыми, 10 закрашенными, 5 пустыми «пикселями». Затем паттерн повторяется.
Также есть дополнительные stroke и fill свойства: fill-rule , которое определяет как будут заливаться сложные фигуры, которые имеют пересечения внутри себя; stroke-miterlimit , which determines if a stroke should draw miters и stroke-dashoffset , который указывает где начинается dash-array в линии (позволяет задать смещение пунктирной обводки относительно первоначального положения)
Использование CSS (Using CSS)
В дополнение к установке атрибутов объектов, вы также можете использовать CSS для стилизации заливки и обводки. Не все атрибуты могут быть установлены через CSS. Но атрибуты взаимодействия с раскраской и заливкой обычно доступны, так что fill , stroke , stroke-dasharray и т.д. могут быть заданы этим способом, также как и градиенты, и паттерны, что показано ниже. Атрибуты вроде width , height или команд для путей SVG не могут быть установлены через CSS. Проще всего просто протестировать и узнать, что доступно, а что нет.
Примечание: Спецификация SVG строго разделяет атрибуты на свойства и другие атрибуты. Первые могут быть изменены через CSS, а вторые — нет.
CSS может использоваться инлайн через атрибут style :
rect x="10" height="180" y="10" width="180" style="stroke: black; fill: red;"/>
или может быть помещён в специальную стилевую секцию, которую вы включите. Вместо отображения такой секции в разделе , как это делается в HTML, она включается в зону , предназначенную для определений. Здесь можно создавать элементы, которые не появятся сами в SVG, но будут использованы другими элементами.
svg width="200" height="200" xmlns="http://www.w3.org/2000/svg" version="1.1"> defs> style type="text/css"> ]]>style> defs> rect x="10" height="180" y="10" width="180" id="MyRect"/> svg>
Перемещение стилей в отдельную зону может сделать проще применение свойств к большим группам элементов. Вы также можете использовать вещи типа псевдоклассов наведения для создания эффектов переворачивания:
#MyRect:hover stroke: black; fill: blue; >
Также можно определить отдельный файл стилей для ваших CSS-правил через обычный XML-stylesheet синтаксис:
svg width="200" height="150" xmlns="http://www.w3.org/2000/svg" version="1.1"> rect height="10" width="10" id="MyRect"/> svg>
где style.css выглядит примерно так
#MyRect fill: red; stroke: black; >
Found a content problem with this page?
This page was last modified on 28 окт. 2022 г. by MDN contributors.
Your blueprint for a better internet.
MDN
Support
Our communities
Developers
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.
stroke
Как и у одноимённого SVG-атрибута, задаёт цвет обводки SVG-элемента. При наличии указанного через CSS или атрибут на этом же SVG-теге свойства stroke — width — толщины обводки, которая должна быть больше 0 .
Пример
Скопировать ссылку «Пример» Скопировано
.circle stroke: #123456;>
.circle stroke: #123456; >
Как пишется
Скопировать ссылку «Как пишется» Скопировано
Свойство соответствует SVG-атрибуту stroke и содержит обозначение цвета.
Помимо стандартных форматов: именованного цвета ( orange , rebeccapurple и др.), RGB(A), HEX и HSL(A), stroke поддерживает формат ссылки на SVG-элемент, который будет как паттерн заполнять площадь обводки:
.circle stroke: url(#pattern);>
.circle stroke: url(#pattern); >
Подсказки
Скопировать ссылку «Подсказки» Скопировано
💡 Через CSS-свойство можно управлять цветом обводки SVG-элементов с помощью других возможностей CSS, например, при наведении курсора:
.circle stroke: url(#pattern);> .circle:hover stroke: blue;>
.circle stroke: url(#pattern); > .circle:hover stroke: blue; >
На практике
Скопировать ссылку «На практике» Скопировано
Realetive советует
Скопировать ссылку «Realetive советует» Скопировано
🛠 CSS-свойство stroke влияет на цвет обводки только при вставке всего SVG-кода непосредственно в HTML — SVG-изображение,
вставленное через SVG-шрифт, , или background , background — image не увидит его.
SVG: используем CSS для определения внешнего вида
Продолжим серию уроков, посвященных использованию SVG на страницах веб проектов. Одним из его преимуществ является возможность использования CSS для определения внешнего вида.
Свойства для SVG элементов
Определение стилей для SVG элементов происходит также, как и для обычных элементов HTML. Некоторые свойства являются общими, но есть и специфические свойства для объектов SVG/
Например: для обычного элемента HTML можно задавать цвет фона свойствами CSS background-color или background . В SVG ситуация несколько отличается: фоновый цвет определяется свойством fill (заполнение). Также обводка элемента определяется свойством stroke , а не border , как в обычном HTML. Полный список свойств приводится здесь.
Если вы знакомы с инструментами редактирования векторной графики (например, редактор Adobe Illustrator), то подобный подход к определению свойств покажется вам логичным.
Реализация определения стилей для SVG элементов
Мы можем использовать следующие методы для определения стилей SVG элементов.
Атрибуты представления
Все свойства SVG могут быть применены непосредственно к представлению элемента в коде HTML. Следующий пример показывает как использовать свойства fill и stroke непосредственно для элемента rect :
В результате получится примерно такой прямоугольник:
Встраиваемые стили
Мы также можем добавлять стили с помощью атрибута style . В следующем примере также добавляются свойства fill и stroke к элементу rect , но в этот раз с помощью атрибута style , и также производится вращение элемента с помощью свойства CSS3 transform :
Внутренняя таблица стилей
Объединение стилей для SVG в элементе style также возможно и не отличается от обычного HTML. Пример демонстрирует как добавить во внутреннюю таблицу стилей правила для SVG элементов в документе .html:
#internal rect < fill: slategrey; stroke: black; stroke-width: 3; -webkit-transition: all 350ms; >#internal rect:hover
Однако, SVG является основанным на XML языком, поэтому при добавлении встроенных стилей в документ .svg нужно использовать декларацию cdata :
Директива cdata в данном случае обязательна, так как CSS используется символ > , который может конфликтовать с обработчиком XML.
Внешняя таблица стилей
Внешняя таблица стилей действует также для элементов SVG в документе .html .
В документе .svg необходимо ссылаться на внешнюю таблицу как на xml-stylesheet :
Группировка элементов
Элементы SVG могут быть сгруппированы с помощью элемента . Сгруппированные элементы позволяют использовать общие стили для всех элементов в группе:
И круг и прямоугольник будут иметь одинаковый внешний вид:
В следующем уроке мы разберем вопрос использование текста в SVG элементах.
Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.hongkiat.com/blog/scalable-vector-graphic-css-styling/
Перевел: Сергей Фастунов
Урок создан: 25 Декабря 2012
Просмотров: 52431
Правила перепечатки
5 последних уроков рубрики «Разное»
Как выбрать хороший хостинг для своего сайта?
Выбрать хороший хостинг для своего сайта достаточно сложная задача. Особенно сейчас, когда на рынке услуг хостинга действует несколько сотен игроков с очень привлекательными предложениями. Хорошим вариантом является лидер рейтинга Хостинг Ниндзя — Макхост.
Как разместить свой сайт на хостинге? Правильно выбранный хороший хостинг — это будущее Ваших сайтов
Проект готов, Все проверено на локальном сервере OpenServer и можно переносить сайт на хостинг. Вот только какую компанию выбрать? Предлагаю рассмотреть хостинг fornex.com. Отличное место для твоего проекта с перспективами бурного роста.
Разработка веб-сайтов с помощью онлайн платформы Wrike
Создание вебсайта — процесс трудоёмкий, требующий слаженного взаимодействия между заказчиком и исполнителем, а также между всеми членами коллектива, вовлечёнными в проект. И в этом очень хорошее подспорье окажет онлайн платформа Wrike.