marker
marker CSS 属性指向一个标记,该标记将绘制在元素路径的第一个、中间和最后一个顶点上,即所有顶点上。该标记必须使用 SVG <marker> 元素定义,并且只能通过 <url> 值引用。CSS 属性的值会覆盖 SVG 中 marker-start、marker 和 marker-end 属性的任何值。
对于许多支持标记的形状,第一个和最后一个顶点位于同一位置:例如,<rect> 的左上角。在这种形状中,如果定义了第一个和最后一个标记,则会在该点绘制两个标记,尽管它们可能指向不同的方向。
对于中间顶点,每个标记的指向方向定义为前一个路径段末端的方向与后一个路径段起点的方向之间的一半。这可以认为是两个路径方向定义的向量的叉积。
注意: marker 属性仅对可以使用 SVG 标记的元素有效。请参阅 marker-start 获取列表。
语法
css
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 引用无效,则不会在路径的顶点处绘制标记。
正式定义
| 初始值 | 作为简写中的每个属性
|
|---|---|
| 应用于 | svg 中的 <circle>、<ellipse>、<line>、<path>、<polygon>、<polyline> 和 <rect> 元素 |
| 继承性 | 是 |
| 计算值 | 同指定值 |
| 动画类型 | 离散 |
正式语法
marker =
none |
<marker-ref>
<marker-ref> =
<url>
示例
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: url("#triangle");
}
规范
| 规范 |
|---|
| Scalable Vector Graphics (SVG) 2 # MarkerShorthand |
浏览器兼容性
加载中…
另见
marker-startmarker-end- SVG
<marker>元素