textpath 的核心作用是让文字沿路径曲线排列,需先定义带唯一 id 的 path,textpath 作为 text 的子元素通过 href="#id" 引用,支持任意形状路径,startoffset 控制起始位置,text-anchor 和 dominant-baseline 调整对齐姿态。

textPath 的核心作用是让文字“贴着路径走”,不是简单定位,而是把每个字符按顺序映射到路径的几何曲线上——路径是骨架,文字是皮肤。
路径必须先定义,且带唯一 ID
SVG 中 path 元素需在 defs 内或同级提前声明,并设置 id。textPath 只认这个 id,不认 class 或其他标识。
- 写法必须是
href="#myPath"(注意井号),不能漏掉 # - 路径本身建议
fill="none",避免遮挡文字;stroke可临时开启方便调试 - 路径支持任意形状:直线(L)、二次贝塞尔(Q)、三次贝塞尔(C)、圆弧(A)等,d 属性决定文字“行走路线”
textPath 必须嵌套在 text 元素内
它不是独立渲染元素,而是 text 的子内容容器。脱离
- 正确结构:
<text><textpath href="#xxx">文字</textpath></text> - 不能直接放在
- 一个
可含多个 ,实现多段文字沿不同路径排列
startOffset 控制起始点位置
它决定文字序列从路径的哪个位置开始“落脚”,值可以是数字(单位像素)或百分比(推荐)。
-
startOffset="0%":从路径起点开始 -
startOffset="50%":从路径中点开始,文字向两端延伸(若路径够长) -
startOffset="100%":文字末尾对齐路径终点,常配合text-anchor="end"使用 - 超出路径长度时,文字会截断,不会自动换行或折返
text-anchor 和 dominant-baseline 影响对齐方式
它们不改变路径走向,但决定文字“站在路径上的姿态”。
-
text-anchor="start"(默认):文字左端锚定在 startOffset 位置 -
text-anchor="middle":文字中心对齐 startOffset 点 -
text-anchor="end":文字右端锚定在 startOffset 点 -
dominant-baseline="middle"让文字垂直居中于路径切线方向,避免上下飘移











