【发布时间】:2014-06-09 22:10:12
【问题描述】:
我需要在 SVG 中输出多行文本。 为此,我使用以下方案:
<text>
<tspan> First line </tspan>
<tspan> Second line </tspan>
</text>
文本的第一行和第二行可以有不同的字符数,可以动态变化。 我希望第二行出现在第一行下方,并且两者中的文本都居中。
我可以通过为第二个<tspan> 添加dy="15" 使第二行显示在第一行下方。
我可以通过添加text-anchor="middle" 来对齐每个<tspan> 中的文本。
但是如何做那些<tspan>的相对居中对齐呢?
我尝试为每个<tspan> 使用x="0",但显然它不起作用,因为每个<tspan> 具有不同的宽度,并且较短行中的渲染文本向左移动。
有没有办法仅使用 CSS 和/或 SVG 来对齐 2 个不同宽度的 <tspan> 的中心。
【问题讨论】:
-
` text-anchor="middle"` ?
-
我添加了你上面提到的所有属性并且它有效:jsfiddle.net/helderdarocha/e4bAh
-
垂直居中:
alignment-baseline="middle"/ 水平居中:text-anchor="middle"
标签: css text svg alignment tspan