标签部分加粗 - 其余部分不粗体

时间:2017-06-14 13:46:43

标签: javascript css d3.js

我正在使用d3.js,以下代码段会在饼图周围呈现标签:

text.enter()
    .append("text")
    .attr("dy", ".35em")
    .style("opacity", 0.01)
    .text(function(d) {
        return (d.data.NAME + ": " + d.data.amount);
    });

因此标签可能会显示为Jimmy: 100

如何以粗体显示d.data.NAME,但d.data.amount不应为粗体?

1 个答案:

答案 0 :(得分:3)

一种解决方案是使用<tspan>元素与font-weight使用不同的d.data.amount

查看演示:

var svg = d3.select("svg");
var text = svg.append("text")
  .attr("x", 10)
  .attr("y", 30)
  .attr("font-weight", 700)
  .text("This is bold...")
  .append("tspan")
  .attr("font-weight", 300)
  .text(" but this is not.")
<script src="https://d3js.org/d3.v4.min.js"></script>
<svg></svg>

在你的情况下,它应该是这样的:

//...
.style("font-weight", 700)
.text(function(d) {
    return d.data.NAME + ": ";
})
.append("tspan")
.style("font-weight", 300)
.text(function(d) {
    return d.data.amount;
});