← 返回 SVG 模块

SVG 文本处理

SVG 提供了强大的文本处理能力,支持样式化、路径文本和多行文本。

基础文本

Hello SVG!
<text x="150" y="75" text-anchor="middle" fill="var(--primary)" font-size="24"> Hello SVG! </text>

路径文本

沿着曲线的文本
<text> <textPath href="#curve" startOffset="50%" text-anchor="middle"> 沿着曲线的文本 </textPath> </text>

多行文本 (tspan)

SVG 文本 第二行文本 第三行文本
<text x="150" y="50" text-anchor="middle"> <tspan x="150" dy="0" font-size="24">标题</tspan> <tspan x="150" dy="30" font-size="16">副标题</tspan> </text>

描边文本

STROKE
<text fill="none" stroke="var(--primary)" stroke-width="2" font-size="36"> STROKE </text>

渐变文本

GRADIENT
<linearGradient id="grad"> <stop offset="0%" stop-color="#10b981"/> <stop offset="100%" stop-color="#8b5cf6"/> </linearGradient> <text fill="url(#grad)">GRADIENT</text>

阴影文本

SHADOW
<filter id="shadow"> <feGaussianBlur stdDeviation="3"/> <feOffset dx="2" dy="2"/> </filter> <text filter="url(#shadow)">SHADOW</text>

💡 关键知识点

  • x, y: 文本的起始位置坐标
  • text-anchor: 文本对齐方式(start, middle, end)
  • textPath: 让文本沿着路径排列
  • tspan: 在文本中创建子元素,实现多行和样式变化
  • dy: 相对于前一个字符的垂直偏移
  • dx: 相对于前一个字符的水平偏移
  • startOffset: 文本在路径上的起始位置(百分比或长度)
  • 文本可以应用填充、描边、渐变和滤镜效果