svg路径语法遵循w3c标准,d属性由大小写敏感的10个命令(m、z、l、h、v、c、s、q、t、a)及参数构成,大写为绝对坐标、小写为相对坐标,参数以空格或逗号分隔,支持省略重复命令字母,z强制闭合路径,解析器须忽略多余空白、拒绝非法命令并按规范处理错误。

SVG矢量图形的路径描述遵循W3C制定的标准化语法规范,核心是d属性值,它由一系列大小写敏感的命令与坐标参数按严格顺序构成,所有实现必须兼容该语法定义。
命令集与大小写语义
标准定义了10个基础命令(M、Z、L、H、V、C、S、Q、T、A),每个命令对应唯一几何行为。大写字母表示绝对坐标(以画布原点(0,0)为基准),小写字母表示相对坐标(以前一终点为原点)。例如:
-
M 10 20:移动到画布绝对位置(10,20) -
m 5 5:从当前位置向右下偏移(5,5) -
L 100 50:画绝对直线至(100,50) -
l -20 30:画相对直线,向左20、向下30
参数格式与分隔规则
命令后紧跟的数字参数必须用空格或逗号分隔,但逗号在多数场景中可省略。多个相同命令连续出现时,后续命令字母可省略,仅保留参数。例如:
-
M 10 10 L 50 10 L 50 60 L 10 60 Z可简写为M 10 10 L 50 10 50 60 10 60 Z - 弧线命令
A固定需6个参数:rx ry x-axis-rotation large-arc-flag sweep-flag x y,顺序不可调换
闭合与坐标系一致性
Z(或z)命令强制闭合路径——从当前点向初始点绘制直线,不依赖坐标数值,且忽略大小写差异。所有坐标均基于用户坐标系(默认与画布坐标系一致),支持通过transform属性整体变换,但d内部参数本身不参与坐标系运算。
兼容性与解析要求
W3C规范明确要求解析器必须:
- 忽略路径数据中的多余空白符和换行(视为空格处理)
- 拒绝无法识别的命令字符,中断后续解析
- 将非法参数(如非数字、缺失必需参数)视为错误,按“错误处理规则”静默跳过或终止渲染
- 保证
d字符串在不同浏览器和渲染引擎中产生完全一致的几何输出











