使用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()) 
+0

谢谢!而已 – yuvi