SVG 获取文本元素宽度

2022-08-30 05:10:27

我正在为SVG文件开发一些ECMAScript / JavaScript,需要获取元素的and,以便我可以调整围绕它的矩形的大小。在HTML中,我可以在元素上使用和属性,但似乎这些属性不可用。widthheighttextoffsetWidthoffsetHeight

这是一个我需要处理的片段。每当我更改文本时,我都需要更改矩形的宽度,但我不知道如何获取元素的实际(以像素为单位)。widthtext

<rect x="100" y="100" width="100" height="100" />
<text>Some Text</text>

有什么想法吗?


答案 1
var bbox = textElement.getBBox();
var width = bbox.width;
var height = bbox.height;

,然后相应地设置矩形的属性。

链接:svg v1.1 标准中的 getBBox()。


答案 2
document.getElementById('yourTextId').getComputedTextLength();

为我工作