Я хочу показать rect
с ярлыком text
рядом с ним. Ширина rect
должна растягиваться до ширины контейнера svg, меньше ширины текста, который является динамическим и может иметь любую переменную длину.Рассчитайте ширину текста перед рисованием текста
var text = 'Foobar';
var textWidth = 50; //how to calculate this?
var plotWidth = 400;
var barWidth = plotWidth-textWidth;
var plot = d3.select(container)
.insert("svg")
.attr('width', plotWidth)
.attr('height', 50);
plot.append("rect")
.style("fill", "steelblue")
.attr("x", 0)
.attr("width", barWidth)
.attr("y", 0)
.attr("height", 50);
plot.append("text")
.attr("x", barWidth)
.attr("y", 28)
.text(text);
Как рассчитать ширину текста с помощью D3, прежде чем он обращается? Или как я могу иначе позиционировать и размер элементов, которые зависят от размеров текста переменной длины?
См http://stackoverflow.com/questions/20224611/d3-position-text-element-dependent-on-length-of-element-before –