CSS-свойство `d`
Базовая поддержка Широко доступно
Эта возможность хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с января 2020 года.
Свойство d CSS задаёт путь, который должен быть нарисован элементом SVG <path>. Если оно задано, то переопределяет атрибут d элемента.
Примечание: Свойство d применяется только к элементам <path>, вложенным в <svg>. Оно не применяется к другим элементам SVG, а также к элементам HTML и псевдоэлементам.
Синтаксис
/* Default */
d: none;
/* Basic usage */
d: path("m 5,5 h 35 L 20,30 z");
d: path("M 0,25 l 50,150 l 200,50 z");
d: path("M 10,5 l 90,0 -80,80 0,-60 80,80 -90,0 z");
/* Global values */
d: inherit;
d: initial;
d: revert;
d: revert-layer;
d: unset;
Значения
Значением может быть функция path() с одним параметром типа <string> или ключевое слово none:
-
none - Путь не рисуется.
-
path(<string>) - Функция
path()с параметром в виде строки данных, заключённой в кавычки. Строка данных задаёт путь SVG. Строка данных пути SVG содержит команды пути, в которых неявно используются пиксельные единицы измерения. Пустой путь считается недопустимым.
Формальное определение
| Начальное значение | none |
|---|---|
| Применяется к |
элементу <path> в <svg>
|
| Наследуется | нет |
| Вычисленное значение | как задано |
| Тип анимации | да, как указано для <basic-shape>, в противном случае нет |
Формальный синтаксис
d =
none |
path(<string>)
Примеры
Задание данных пути
В этом примере показан базовый вариант использования d и то, как CSS-свойство d имеет приоритет над атрибутом d.
HTML
Мы добавляем в SVG два идентичных элемента <path>; значения их атрибутов d — "m 5,5 h 90 v 90 h -90 v -90 z", что создаёт квадрат 90px.
<svg> <path d="m 5,5 h 90 v 90 h -90 v -90 z" /> <path d="m 5,5 h 90 v 90 h -90 v -90 z" /> </svg>
CSS
С помощью CSS мы задаём для обоих путей чёрную stroke и полупрозрачную красную fill. Затем используем свойство d, чтобы переопределить значение атрибута SVG d только для последнего пути. По умолчанию браузер отображает изображения SVG шириной 300px и высотой 150px.
svg {
border: 1px solid;
}
path {
fill: #ff333388;
stroke: black;
}
path:last-of-type {
d: path(
"M10,30 A20,20 0,0,1 50,30 A20,20 0,0,1 90,30 Q90,60 50,90 Q10,60 10,30 z"
);
}
Результаты
Второй <path> — это сердце, заданное значением функции path() свойства CSS d. Путь неоформленного <path> остался квадратом, заданным значением его атрибута SVG d.
Анимация данных пути
В этом примере показана анимация значения атрибута d.
HTML
Мы создаём <svg>, содержащий один элемент <path>.
<svg> <path /> </svg>
CSS
С помощью атрибута d мы задаём сердце, перечёркнутое линией. В CSS мы задаём fill, stroke и stroke-width этого пути, а также добавляем двухсекундный transition. Мы добавляем стиль :hover с немного отличающейся функцией path(); в пути столько же точек данных, сколько и в состоянии по умолчанию, поэтому его можно анимировать.
svg {
border: 1px solid;
}
path {
d: path(
"M10,30 A20,20 0,0,1 50,30 A20,20 0,0,1 90,30 Q90,60 50,90 Q10,60 10,30 z M90,5 L5,90"
);
transition: all 2s;
fill: none;
stroke: red;
stroke-width: 3px;
}
svg:hover path {
d: path(
"M10,30 A20,20 0,0,1 50,30 A20,20 0,0,1 90,30 Q90,60 50,90 Q10,60 10,30 z M5,5 L90,90"
);
stroke: black;
}
Результаты
Чтобы посмотреть анимацию, наведите указатель на SVG.
Спецификации
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari на iOS | Samsung Internet | WebView для Android | WebView на iOS | |
d |
52 |
79 |
97 |
39 |
НетСвойство разбирается, но не оказывает никакого эффекта. |
52 |
97 |
41 |
НетСвойство разбирается, но не оказывает никакого эффекта. |
6.0 |
52 |
НетСвойство разбирается, но не оказывает никакого эффекта. |
none |
52 |
79 |
97 |
39 |
Нет |
52 |
97 |
41 |
Нет |
6.0 |
52 |
Нет |
См. также
- Атрибут SVG
d fillstroke-
Функция
path() -
Тип данных
<basic-shape> - Обзор CSS-фигур
- Модуль CSS-фигуры
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/d