CSS-свойство `marker`
Базовый уровень Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и во многих версиях браузеров. Она доступна во всех браузерах с января 2020 года.
CSS-свойство marker CSS указывает на маркер, который будет нарисован в первой, средней и последней вершинах контура элемента, то есть во всех его вершинах. Маркер должен быть определён с помощью элемента SVG <marker>, и на него можно ссылаться только с помощью значения <url>. Значение CSS-свойства переопределяет любые значения атрибутов SVG marker-start, marker и marker-end.
У многих фигур, поддерживающих маркеры, первая и последняя вершины находятся в одном и том же месте: например, в верхнем левом углу элемента <rect>. Если у такой фигуры заданы первый и последний маркеры, в этой точке будут нарисованы два маркера, хотя они могут указывать в разных направлениях.
Направление каждого маркера в средних вершинах определяется как направление, находящееся посередине между направлением в конце предыдущего сегмента контура и направлением в начале следующего сегмента. Это можно представить как векторное произведение векторов, заданных направлениями двух сегментов контура.
Примечание: Свойство marker действует только для элементов, которые могут использовать маркеры SVG. Список таких элементов приведён в разделе marker-start.
Синтаксис
marker: none;
marker: url("markers.svg#arrow");
/* Global values */
marker: inherit;
marker: initial;
marker: revert;
marker: revert-layer;
marker: unset;
Значения
-
none - Означает, что в каждой вершине контура элемента маркер нарисован не будет.
-
<marker-ref> <url>, указывающее на маркер, определённый элементом SVG<marker>, который будет нарисован в каждой вершине контура элемента. Если URL-ссылка недействительна, маркеры в вершинах контура нарисованы не будут.
Формальное определение
| Начальное значение | как у каждого из свойств сокращённой записи: |
|---|---|
| Применяется к | элементам <circle>, <ellipse>, <line>, <path>, <polygon>, <polyline> и <rect> внутри <code>svg</code> |
| Наследуется | да |
| Вычисленное значение | как задано |
| Тип анимации | дискретный |
Формальный синтаксис
marker =
none |
<url>
Пример
html,
body,
svg {
height: 100%;
}
<svg viewBox="0 0 240 120" xmlns="http://www.w3.org/2000/svg">
<defs>
<marker
id="triangle"
viewBox="0 0 10 10"
markerWidth="10"
markerHeight="10"
refX="1"
refY="5"
markerUnits="strokeWidth"
orient="auto">
<path d="M 0 0 L 10 5 L 0 10 z" fill="red" />
</marker>
</defs>
<polyline
id="test"
fill="none"
stroke="black"
points="20,100 40,60 70,80 100,20 130,10 150,10 170,20 170,100 120,100" />
</svg>
polyline#test {
marker: url("#triangle");
}
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari для iOS | Samsung Internet | WebView для Android | WebView для iOS | |
marker |
1 |
≤15 |
3 |
15 |
4 |
18 |
4 |
14 |
3.2 |
1.0 |
4.4 |
3.2 |
none |
1 |
≤15 |
3 |
15 |
4 |
18 |
4 |
14 |
3.2 |
1.0 |
4.4 |
3.2 |
См. также
marker-startmarker-end- Элемент SVG
<marker>
© 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/marker