<svg width=960 height=500> <line x1=10 x2=850 y1=200 y2=200 style="stroke: green"></line> <text x=926 y=200.5 style="dominant-baseline:central;fill: green; font-size: 14px;">y=0</text> <g class="terms" transform="translate(20,200)"> <text x=0 dominant-baseline= "alphabetic" >漢</text> <text x=80 baseline-shift="-24%">漢</text> <text x=160 dominant-baseline="ideographic">漢</text> <text x=240 dominant-baseline="hanging">漢</text> <text x=320 dominant-baseline="mathematical">漢</text> <text x=400 dominant-baseline="middle">漢</text> <text x=480 dominant-baseline="central">漢</text> <text x=560 dominant-baseline="text-before-edge">漢</text> <text x=640 dominant-baseline="text-after-edge">漢</text> </g> <g class="labels" transform="translate(50,120)" > <text x=0 transform="rotate(-45)">alphabetical</text> <text x=80 transform="translate(10, 70),rotate(-45)">baseline-shift: -24%</text> <text x=130 y=100 transform="rotate(-45)">ideographic</text> <text x=140 y=200 transform="rotate(-45)">hanging</text> <text x=190 y=240 transform="rotate(-45)">mathemetical</text> <text x=280 y=300 transform="rotate(-45)">middle</text> <text x=320 y=350 transform="rotate(-45)">central</text> <text x=370 y=410 transform="rotate(-45)">text-before-edge</text> <text x=480 y=450 transform="rotate(-45)">text-after-edge</text> </g> </svg>
var d = []; d3.selectAll('.terms text') .each(function() { d.push(this.getBBox()) }); d3.select('svg .terms').selectAll('rect') .data(d).enter() .append('rect') .attr('x', function(d) {return d.x}) .attr('y', function(d) {return d.y}) .attr('width', function(d) {return d.width}) .attr('height', function(d) {return d.height}) .style('stroke', 'gray') .style('stroke-dasharray', '6 6') .style('fill', 'none')
.terms{ font-size: 60px; font-family: 'MS 明朝'; }