Spec-Zone.ru › CSS

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-ссылка недействительна, маркеры в вершинах контура нарисованы не будут.

Формальное определение

Начальное значение как у каждого из свойств сокращённой записи:
  • marker-start
  • marker-mid
  • marker-end
Применяется к элементам <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");
}

Спецификации

Спецификация
Масштабируемая векторная графика (SVG) 2
# MarkerShorthand

Совместимость с браузерами

Настольные компьютеры Мобильные устройства
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-start
  • marker-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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API