<marker>
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
<marker> å
ç´ å®ä¹äºå¨ç»å® <path>ã<line>ã<polyline> æ <polygon> å
ç´ ä¸ç»å¶ç®å¤´æè
å¤è¾¹æ è®°æä½¿ç¨çå¾å½¢ã
å¯ä»¥ä½¿ç¨ marker-startãmarker-mid å marker-end 屿§å°æ è®°éçå°å½¢ç¶ä¸ã
示ä¾
>ç»å¶ç®å¤´
以ä¸ç¤ºä¾å±ç¤ºå¦ä½å¨ç´çº¿æè
æ²çº¿è·¯å¾ä¸ç»å¶ç®å¤´ãå¯¹äºæ²çº¿è·¯å¾ï¼æ¯ä¸ªç¹é½ç¨ marker-mid æ è®°ç»å¶ä¸ä¸ªç®å¤´ã
<svg viewBox="0 0 300 100" xmlns="http://www.w3.org/2000/svg">
<defs>
<!-- ç¨ä½ç®å¤´ç marker -->
<marker
id="arrow"
viewBox="0 0 10 10"
refX="5"
refY="5"
markerWidth="6"
markerHeight="6"
orient="auto-start-reverse">
<path d="M 0 0 L 10 5 L 0 10 z" />
</marker>
</defs>
<!-- 带æ è®°ç线 -->
<line
x1="10"
y1="10"
x2="90"
y2="90"
stroke="black"
marker-end="url(#arrow)" />
<!-- 带æ è®°çæ²çº¿-->
<path
d="M 110 10
C 120 20, 130 20, 140 10
C 150 0, 160 0, 170 10
C 180 20, 190 20, 200 10"
stroke="black"
fill="none"
marker-start="url(#arrow)"
marker-mid="url(#arrow)"
marker-end="url(#arrow)" />
</svg>
ç»å¶å¤è¾¹æ è®°
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
<defs>
<!-- ç®å¤´ marker å®ä¹ -->
<marker
id="arrow"
viewBox="0 0 10 10"
refX="5"
refY="5"
markerWidth="6"
markerHeight="6"
orient="auto-start-reverse">
<path d="M 0 0 L 10 5 L 0 10 z" />
</marker>
<!-- ç¹ marker å®ä¹ -->
<marker
id="dot"
viewBox="0 0 10 10"
refX="5"
refY="5"
markerWidth="5"
markerHeight="5">
<circle cx="5" cy="5" r="5" fill="red" />
</marker>
</defs>
<!-- å¨ä¸¤ä¸ªæ¹åä¸é½å¸¦æç®å¤´çåæ è½´ -->
<polyline
points="10,10 10,90 90,90"
fill="none"
stroke="black"
marker-start="url(#arrow)"
marker-end="url(#arrow)" />
<!-- å¤è¾¹æ è®°æ°æ®çº¿ -->
<polyline
points="15,80 29,50 43,60 57,30 71,40 85,15"
fill="none"
stroke="grey"
marker-start="url(#dot)"
marker-mid="url(#dot)"
marker-end="url(#dot)" />
</svg>
ä½¿ç¨ context fill å stroke
以ä¸ç¤ºä¾å±ç¤ºäºå¦ä½ä½¿ç¨ context-fill å context-stroke å¼å¯ä»¥è®©ä¸ä¸ª marker 使ç¨ä¸å
¶éå å°çå½¢ç¶ç¸åçå¡«å
åæè¾¹ã
<svg viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg">
<marker
id="circle"
markerWidth="6"
markerHeight="6"
refX="3"
refY="3"
markerUnits="strokeWidth">
<circle cx="3" cy="3" r="2" stroke="context-stroke" fill="context-fill" />
</marker>
<style>
path {
marker: url(#circle);
}
</style>
<path d="M 10,10 30,10 h 10" stroke="black" />
<path d="M 10,20 30,20 h 10" stroke="blue" fill="red" />
<path d="M 10,30 30,30 h 10" stroke="red" fill="none" />
<path d="M 10,40 30,40 h 10" stroke="gray" fill="blue" stroke-width="1.5" />
</svg>
屿§
markerHeight-
è¯¥å±æ§å®ä¹äº marker è§å£çé«åº¦ãå¼çç±»åï¼<length>ï¼é»è®¤å¼ï¼
3ï¼å¨ç»æ§ï¼æ markerUnits-
è¯¥å±æ§ä¸º
markerWidthãmarkerHeightå<marker>çå 容å®ä¹äºåæ ç³»ãå¼çç±»åï¼userSpaceOnUse|strokeWidthï¼é»è®¤å¼ï¼strokeWidthï¼å¨ç»æ§ï¼æ markerWidth-
è¯¥å±æ§å®ä¹äº marker è§å¾ç宽度ãå¼çç±»åï¼<length> ï¼é»è®¤å¼ï¼
3ï¼å¨ç»æ§ï¼æ orient-
è¯¥å±æ§å®ä¹äº marker ç¸å¯¹äºå®æéçå°å½¢ç¶çæ¹åãå¼çç±»åï¼
auto|auto-start-reverse|<angle> ï¼é»è®¤å¼ï¼0ï¼å¨ç»æ§ï¼æ preserveAspectRatio-
è¯¥å±æ§å®ä¹äº svg çæ®µå¨åµå ¥å ·æä¸å宽髿¯ä¾ç容å¨ä¸åºè¯¥å¦ä½åå½¢ãå¼çç±»åï¼(
none|xMinYMin|xMidYMin|xMaxYMin|xMinYMid|xMidYMid|xMaxYMid|xMinYMax|xMidYMax|xMaxYMax) (meet|slice)? ï¼é»è®¤å¼ï¼xMidYMid meetï¼å¨ç»æ§ï¼æ refX-
è¯¥å±æ§å®ä¹äºæ è®°åèç¹ç x çåæ ã å¼çç±»åï¼
left|center|right|<coordinate> ï¼é»è®¤å¼ï¼0ï¼å¨ç»æ§ï¼æ refY-
è¯¥å±æ§å®ä¹äºæ è®°åèç¹ç y çåæ ã å¼çç±»åï¼
top|center|bottom|<coordinate> ï¼é»è®¤å¼ï¼0ï¼å¨ç»æ§ï¼æ viewBox-
è¯¥å±æ§å®ä¹äºå½å SVG çæ®µç SVG è§å£è¾¹çã å¼çç±»åï¼<list-of-numbers> ï¼é»è®¤å¼ï¼noneï¼å¨ç»æ§ï¼æ
使ç¨ä¸ä¸æ
| ç±»å« | 容å¨å ç´ |
|---|---|
| å 许çå 容 | ä»»ææ°éãä»»æé¡ºåºçä¸åå
ç´ ï¼ å¨ç»å ç´ æè¿°æ§å ç´ å½¢ç¶å ç´ ç»æåå ç´ æ¸åå ç´ <a>ã<clipPath>ã<filter>ã<foreignObject>ã<image>ã<marker>ã<mask>ã<pattern>ã<script>ã<style>ã<switch>ã<text>ã<view> |
è§è
| è§è |
|---|
| Scalable Vector Graphics (SVG) 2 > # MarkerElement > |
æµè§å¨å ¼å®¹æ§
åè§
- ä¸ marker ç¸å
³ç屿§ï¼
marker-startãmarker-midåmarker-end