Để thêm vào câu trả lời của Scott, dy được sử dụng với em (đơn vị kích thước phông chữ) rất hữu ích để căn chỉnh văn bản theo chiều dọc so với tọa độ y tuyệt đối. Điều này được đề cập trong ví dụ về phần tử văn bản dy MDN .
Sử dụng dy = 0.35em có thể giúp căn giữa văn bản theo chiều dọc bất kể kích thước phông chữ. Nó cũng hữu ích nếu bạn muốn xoay tâm văn bản của mình xung quanh một điểm được mô tả bằng tọa độ tuyệt đối của bạn.
<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>
Xem nó trong Codepen
Nếu bạn không bao gồm "dy = 0,35em", các từ sẽ xoay quanh cuối văn bản và sau 180 căn chỉnh bên dưới vị trí trước khi xoay. Bao gồm "dy = 0.35em" sẽ xoay chúng xung quanh tâm của văn bản.
Lưu ý rằng không thể đặt dy bằng CSS.
d3.js
nó được sử dụng để kết hợp các đơn vị khác nhau. Giống nhưx="3" dx="0.5em"
số tiền là 3 pixel + nửa dòng văn bản.