由于你不能用另一个图形元素包装<text>
元素,我只是在类似的坐标上添加一个rect
元素来将文本包装在一个矩形边框中。但是,我想根据文本(更改)计算矩形的宽度和高度。所以,像这样:
var text = svg.append("text")
.attr({ ... });
var rect = svg.append("rect")
.attr({
width: text.attr("width") + 5,
height: text.attr("height") + 5
});
只有这不起作用。如何获取文本元素的高度和宽度(如果有的话)?我搜索了Google和SO,并没有找到任何类似的问题。
答案 0 :(得分:12)
使用.getBBox():
> text.node().getBBox()
SVGRect {height: 17, width: 56, y: -14, x: 0}
var rect = svg.append('rect')
.attr(text.node().getBBox())