菜单
×
   ❮     
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 - <marker>

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

所有 SVG 标记都定义在 <defs> 元素内。<defs> 元素是“definitions”的缩写,包含特殊元素的定义(例如标记)。

标记通过 marker-startmarker-midmarker-end 属性附加到形状上。

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

Attribute 描述
id 标记的唯一 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>
自己动手试一试 »

代码解释

  • <defs> 元素包含两个标记:一个 #circle 标记和一个 #arrow 标记
  • 标记的形状定义在 <marker> 元素中
  • 第一个 <marker> 元素包含一个 <circle> 元素,用于绘制一个小圆
  • 第二个 <marker> 元素包含一个 <path> 元素,用于绘制一个小三角形
  • <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>
自己动手试一试 »

代码解释

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

×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持