text-anchor

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

文本锚点属性被用来描述该文本与所给点的对齐方式(开头、中间、末尾对齐)。

文本锚点属性被运用到每个 <text> 元素的独立文本块上。每个文本块有一个初始的当前文本位置,一个来源于 <text> 元素的 xy 属性在当前上下文的用户坐标系中所对应的点,任何一个 <tspan><tref> 元素的 x 或者 y 属性值都明确指向了文本块里第一个被呈现的字符,或者是决定了 <textPath> 元素的当前文本位置的初始值。

作为一个描述性的属性,它也可以直接用作 CSS 样式的性质(style 属性的值)。

使用方法

类别 呈现属性
start | middle | end | inherit
可动画化
start

所呈现的字符对齐方式为:文本字符串的开始位置即当前文本的初始位置。对于拉丁文在其通常文本排列方向,这就相当于左对齐。对于脚本像希伯来语和阿拉伯语这类自右向左排列的文字来说,这相当于右对齐。对于亚洲某些垂直走向的文本来说,这相当于向上对齐。

middle

所呈现的字符对齐方式为:文本字符串的中间位置即当前文本的初始位置。(对于按路径排列的文本,会从概念上首先将其文本排列在一条直线上,确定该串中点位置后,然再将该文本映射到路径上,并且将之前确定的中点放置在当前文本的位置上 )

end

所呈现的字符对齐方式为:文本字符串的末尾即当前文本的初始位置。对于拉丁语通常的文字走向来说,这就相当于右对齐。对于像希伯来语和阿拉伯语这类将文字自右向左排列的脚本来说,这相当于左对齐。

示例

html
<?xml version="1.0"?>
<svg
  width="120"
  height="120"
  viewBox="0 0 120 120"
  xmlns="http://www.w3.org/2000/svg"
  version="1.1">
  <!-- Materialisation of anchors -->
  <path
    d="M60,15 L60,110 M30,40 L90,40 M30,75 L90,75 M30,110 L90,110"
    stroke="grey" />

  <!-- Anchors in action -->
  <text text-anchor="start" x="60" y="40">A</text>

  <text text-anchor="middle" x="60" y="75">A</text>

  <text text-anchor="end" x="60" y="110">A</text>

  <!-- Materialisation of anchors -->
  <circle cx="60" cy="40" r="3" fill="red" />
  <circle cx="60" cy="75" r="3" fill="red" />
  <circle cx="60" cy="110" r="3" fill="red" />

  <style>
    <![CDATA[
    text{
        font: bold 36px Verdana, Helvetica, Arial, sans-serif;
    }
    ]]>
  </style>
</svg>

元素

以下元素可以运用文本锚点属性:

规范

Specification
Scalable Vector Graphics (SVG) 2
# TextAnchoringProperties