Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SVG区域中居中显示文本_Svg_Icons_Vector Icons - Fatal编程技术网

如何在SVG区域中居中显示文本

如何在SVG区域中居中显示文本,svg,icons,vector-icons,Svg,Icons,Vector Icons,我试图将文本置于SVG区域的中心,但没有成功。有人对如何优化这一点有什么见解吗 圣热讷维耶沃 OP正在评论: 我只希望文本位于彩色区域内,并且右侧朝上 在这种情况下,您不需要使用文本路径。你需要找到路径的中心。为此,首先获得路径的边界框:let bb=thePath.getBBox() 接下来,您将获得路径的中心: let x = bb.x + bb.width/2; let y = bb.y + bb.height/2; 最后,将文本的x和y属性设置为x和y,使舒尔确保文本围绕此点居中:

我试图将文本置于SVG区域的中心,但没有成功。有人对如何优化这一点有什么见解吗


圣热讷维耶沃
OP正在评论:

我只希望文本位于彩色区域内,并且右侧朝上

在这种情况下,您不需要使用文本路径。你需要找到路径的中心。为此,首先获得路径的边界框:
let bb=thePath.getBBox()

接下来,您将获得路径的中心:

let x = bb.x + bb.width/2;
let y = bb.y + bb.height/2;
最后,将文本的x和y属性设置为x和y,使舒尔确保文本围绕此点居中:
text-anchor=“middle”显性基线=“middle”

让bb=path.getBBox();
text.setAttribute(“x”,bb.x+bb.width/2);
text.setAttribute(“y”,bb.y+bb.height/2)
svg{边框:1px实心;宽度:300px}

圣热讷维耶沃

也许您需要为文本使用不同的路径。你可以选择一方为圣徒,另一方为吉纳维芙。此外,此
id=“sainte genevieve”
不是有效的id@RobertLongson我做了,但没有用。@enxaneta我的目标是使文本居中;你说的边是什么意思?感谢您注意到无效的ID。尽管文本仍然显示。这会对文本的间距产生怎样的影响?你能编辑你的问题并添加一幅你想要达到的效果的图片吗?@enxaneta我没有画。我只希望文本位于彩色区域内,并且右侧朝上。