乐闻世界logo
搜索文章和话题

How to Center Text inside an SVG Path

5 个月前提问
5 个月前修改
浏览次数32

1个答案

1

在SVG中要将文本居中显示在一个路径上,主要步骤包括创建路径、定义文本以及使用textPath元素将文本与路径关联起来。以下是具体步骤和代码示例:

  1. 创建路径

    • 首先,我们需要定义一个路径(path),文本将沿着这个路径显示。这个路径可以是直线、曲线或任何自定义形状。
  2. 定义文本

    • 定义一个text元素,这是用来包含实际文本内容的容器。
  3. 使用textPath元素关联文本和路径

    • textPath元素用来将文本和定义好的路径关联起来。通过设置textPathhref属性指向路径的ID,可以使文本沿着该路径布局。
    • 为了实现文本的居中显示,可以在textPath元素上使用startOffset属性。将startOffset设置为50%,并配合text-anchor属性设置为middle,可以实现文本的居中效果。

下面是一个具体的代码示例,展示了如何在SVG中沿着一个圆形路径居中显示文本:

xml
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg"> <!-- 定义一个圆形路径 --> <path id="circlePath" fill="none" stroke="red" d="M 100, 100 m -75, 0 a 75,75 0 1,0 150,0 a 75,75 0 1,0 -150,0"/> <!-- 文本元素 --> <text fill="blue" font-size="20" text-anchor="middle"> <!-- 将文本与路径关联 --> <textPath href="#circlePath" startOffset="50%"> 居中文本沿路径 </textPath> </text> </svg>

在这个例子中,id="circlePath"定义了一个圆形路径。text元素包含了一个textPath,它通过href="#circlePath"关联到我们定义的圆形路径。startOffset="50%"text-anchor="middle"确保文本在圆形路径的正中央显示。

这样,文本就会沿着路径居中显示,这在创建SVG图形和动画中非常有用,尤其是当路径形状不规则时,这种方法能够确保文本的显示始终是居中的。

2024年7月20日 03:39 回复

你的答案