此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

marker-mid

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2017年4月⁩.

CSS 属性 marker-mid 用于指定绘制在元素路径中间顶点上的标记,也就是位于起始顶点和结束顶点之间的每个顶点。该标记必须使用 SVG 的 <marker> 元素进行定义,并且只能通过 <url> 类型的值进行引用。此 CSS 属性的取值会覆盖 SVG 中 marker-mid 属性的任何值。

每个标记的指向方向被定义为:前一个路径片段结束方向与后一个路径片段开始方向之间的中间方向。可以理解为由这两段路径方向所定义的向量的叉积。

备注: marker-mid 属性仅对可以使用 SVG 标记的元素生效。可使用的元素列表请参见 marker-mid

语法

css
marker-mid: none;
marker-mid: url("markers.svg#arrow");

/* 全局值 */
marker-mid: inherit;
marker-mid: initial;
marker-mid: revert;
marker-mid: revert-layer;
marker-mid: unset;

none

这表示不会在元素路径的每个中间顶点绘制标记。

<marker-ref>

一个由 SVG <marker> 元素指向的 <url> 定义的标记,用于绘制在元素路径的每个中间顶点上。如果该 URL 引用无效,则不会在路径的中间顶点绘制任何标记。

形式定义

初始值none
适用元素<circle>, <ellipse>, <line>, <path>, <polygon>, <polyline>, and <rect> elements in an svg
是否是继承属性
计算值as specified, but with <url> values made absolute
动画类型离散值

形式语法

marker-mid = 
none |
<marker-ref>

<marker-ref> =
<url>

<url> =
<url()> |
<src()>

<url()> =
url( <string> <url-modifier>* ) |
<url-token>

<src()> =
src( <string> <url-modifier>* )

示例

html
<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>
css
polyline#test {
  marker-mid: url("#triangle");
}

规范

Specification
Scalable Vector Graphics (SVG) 2
# MarkerMidProperty

浏览器兼容性

参见