使用d3减去文本元素的高度
问题描述:
由于您无法用另一个图形元素包装<text>
元素,所以我只是在相似的坐标上添加了rect
元素以将文本包装在矩形边框中。不过,我想根据文本的宽度和高度(其变化)来计算该长方形的宽度和高度。所以,这样的事情:使用d3减去文本元素的高度
var text = svg.append("text")
.attr({ ... });
var rect = svg.append("rect")
.attr({
width: text.attr("width") + 5,
height: text.attr("height") + 5
});
只有这是行不通的。我如何获取文本元素的高度和宽度(如果有的话)?我搜索了Google和SO,并没有发现任何有关该主题的类似问题。
答
使用.getBBox():
> text.node().getBBox()
SVGRect {height: 17, width: 56, y: -14, x: 0}
var rect = svg.append('rect')
.attr(text.node().getBBox())
谢谢!而已 – yuvi