Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

SVG <marker>


SVG 标记 - <marker>

The <marker> 元素用于创建用于 <line>、<path>、<polyline> 或 <polygon> 的开始、中间和结束的标记。

所有 SVG 标记都定义在 <defs> 元素内。<defs> 元素代表 "定义",它包含特殊元素的定义(例如标记)。

标记使用 marker-start、marker-mid 和 marker-end 属性附加到形状。

The <marker> 元素具有六个基本属性来定位和设置标记的大小

属性 描述
id 标记的唯一标识符
markerHeight 标记的高度。默认值为 3
markerWidth 标记的宽度。默认值为 3
refX 标记与顶点连接的 x 位置。默认值为 0
refY 标记与顶点连接的 y 位置。默认值为 0
orient 标记相对于其所附加形状的方向。可以是 "auto"、"auto-start-reverse" 或一个角度。默认值为 0

带有开始和结束标记的线段

以下示例创建一个带有圆形开始标记和箭头结束标记的线段

Sorry, your browser does not support inline SVG.

以下是 SVG 代码

示例

<svg height="250" width="350" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <marker id="circle" markerWidth="8" markerHeight="8" refX="5" refY="5">
      <circle cx="5" cy="5" r="3" fill="black" />
    </marker>
    <marker id="arrow" markerWidth="10" markerHeight="10" refX="5" refY="5" orient="auto">
      <path d="M 0 0 L 10 5 L 0 10 z" fill="black" />
    </marker>
  </defs>
  <line x1="10" y1="10" x2="300" y2="200" stroke="red" stroke-width="3" marker-start="url(#circle)" marker-end="url(#arrow)" />
</svg>
自己试试 »

代码解释

  • The <defs> 元素包含两个标记:一个 <circle> 标记和一个 <arrow> 标记
  • 标记的形状在 <marker> 元素中定义
  • 第一个 <marker> 元素包含一个 <circle> 元素,它绘制一个小圆圈
  • 第二个 <marker> 元素包含一个 <path> 元素,它绘制一个小三角形
  • The <line> 元素使用 marker-start 属性和 marker-end 属性引用这两个标记


添加一个中间标记

以下示例创建一个带有开始标记、中间标记和结束标记的折线

Sorry, your browser does not support inline SVG.

以下是 SVG 代码

示例

<svg height="250" width="350" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <marker id="circle" markerWidth="8" markerHeight="8" refX="5" refY="5">
      <circle cx="5" cy="5" r="2" fill="black" />
    </marker>
    <marker id="arrow" markerWidth="10" markerHeight="10" refX="5" refY="5" orient="auto">
      <path d="M 0 0 L 10 5 L 0 10 z" fill="black" />
    </marker>
  </defs>
  <polyline points="15,40 15,170 200,170" stroke="red" stroke-width="3" fill="none" marker-start="url(#circle)" marker-mid="url(#circle)" marker-end="url(#arrow)" />
</svg>
自己试试 »

代码解释

  • The <defs> 元素包含两个标记:一个 <circle> 标记和一个 <arrow> 标记
  • 标记的形状在 <marker> 元素中定义
  • 第一个 <marker> 元素包含一个 <circle> 元素,它绘制一个小圆圈
  • 第二个 <marker> 元素包含一个 <path> 元素,它绘制一个小三角形
  • The <polyline> 元素使用 marker-start 属性、marker-mid 属性和 marker-end 属性引用这两个标记
  • 请注意,marker-start 属性和 marker-mid 属性指向同一个标记 (<circle>)。这样就可以多次重复使用标记

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.