Scott의 대답에 추가하기 위해 em (글꼴 크기 단위)과 함께 사용되는 dy는 절대 y 좌표를 기준으로 텍스트를 수직으로 정렬하는 데 매우 유용합니다. 이것은 MDN dy 텍스트 요소 예제 에서 다룹니다 .
dy = 0.35em을 사용하면 글꼴 크기에 관계없이 텍스트를 세로로 가운데에 맞출 수 있습니다. 절대 좌표로 설명 된 점을 중심으로 텍스트 중심을 회전하려는 경우에도 도움이됩니다.
<style>
text { fill: black; text-anchor: middle; }
line { stroke-width: 1; stroke: lightgray; }
</style>
<script>
dataset = d3.range(50,500,50);
svg = d3.select("body").append("svg");
svg.attr('width',500).attr('height', 500);
svg.append("line").attr('x1', 0).attr('x2', 500).attr('y1', 100).attr('y2', 100);
svg.append("line").attr('x1', 0).attr('x2', 500).attr('y1', 200).attr('y2', 200);
group = svg.selectAll("g")
.data(dataset)
.enter()
.append("g");
// Without the dy=0.35em offset
group.append("text")
.text("My text")
.attr("x",function (d) {return d;})
.attr("y",100)
.attr("transform", function(d, i) {return "rotate("+45*i+","+d+",100)";});
// With the dy=0.35em offset
group.append("text")
.text("My text")
.attr("x",function (d) {return d;})
.attr("y",200)
.attr("dy","0.35em")
.attr("transform", function(d, i) {return "rotate("+45*i+","+d+",200)";});
<script>
Codepen에서보기
"dy = 0.35em"을 포함하지 않으면 단어가 텍스트 하단을 중심으로 회전하고 180이 지나면 회전 전 위치 아래로 정렬됩니다. "dy = 0.35em"을 포함하면 텍스트 중앙을 중심으로 회전합니다.
dy는 CSS를 사용하여 설정할 수 없습니다.
d3.js
다른 단위를 결합하는 데 사용되는 것 같습니다 . 마찬가지로x="3" dx="0.5em"
어떤 + 반 텍스트 라인 3 개 픽셀에 달한다.