圆内垂直和水平居中的文本

时间:2018-07-19 18:58:00

标签: svg

我想在此圆内将文本(两行)垂直和水平居中,但是出了点问题:

SVG wrong

SVG wrong preview

我也试图将背景图像放在中间,但我希望它位于虚线/虚线边框层的下方,而不是上方。有什么建议吗?

这是文本的显示方式,但我希望将其作为文本而不是tspan。当然还有一个居中的背景图像。

Good example

1 个答案:

答案 0 :(得分:0)

如果您不想使用tspan,则需要两个text元素。您可以将两个元素的坐标都设置为50%/ 50%,然后..

  • 要在该点上水平居中,请使用text-anchor middle
  • 要将第一行放置在该点的上方,将第二行放置在该点的下方,请使用alignment-baseline baseline/hanging(要在各行之间留出更多空间,您需要调整{{ 1}}进行协调)。

示例:

y

修改

在多于两行的情况下,将一个<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200"> <style> text { font-family: sans-serif; font-size: 30px; } </style> <circle cx="50%" cy="50%" r="45%" stroke="tomato" stroke-width="8" stroke-dasharray="20" fill="none" />          <!-- Anchors in action -->     <text x="50%" y="50%" text-anchor="middle" alignment-baseline="baseline">First row</text>     <text x="50%" y="50%" text-anchor="middle" alignment-baseline="hanging">Second row</text> </svg>元素与多个text元素一起使用会更容易。同样,将tspan置于50%/ 50%的中心,并使用dy attribyte将text均匀地隔开。 注意tspan与上一个dy的相对关系

tspan

相关问题