7

我以 textContent "Design" 和 text-anchor 作为开始的文本,用 css 将其转换为旋转 45 度。所以它得到旋转。问题是我需要在旋转后调整文本的 (x,y) 位置以显示刻度之间的文本,如预期图中所示。我怎样才能做到这一点。

结果: http://imageshack.us/content_round.php?page=done&l=img404/2711/ result1h.png

预期: http: //imageshack.us/content_round.php ?page=done&l=img266/5138/expected1.png

    <svg>
    <text x="100" y="100" width="64" height="16" fill="black" transform="rotate(45,100,100)" text-anchor="start">Design</text>
    </svg>

谢谢高里

4

2 回答 2

14

文本需要水平和垂直居中,因此旋转不会移动它:

<text x="100" y="50" text-anchor="middle"
    dominant-baseline="central" transform="rotate(0, 100, 50)"></text>

text-anchor水平
dominant-baseline对齐文本 垂直对齐文本

svg {
    width: 200px; height: 100px;
    text-align: center;
    border: solid 1px blue;
    font-family: monospace;
}
<svg>
    <text x="100" y="50" text-anchor="middle" dominant-baseline="central" transform="rotate(180, 100, 50)">
       Hello World
   </text>
    <text x="100" y="50" text-anchor="middle" dominant-baseline="central" transform="rotate(0, 100, 50)">
       Hello World
   </text>
</svg>

示例:http: //jsfiddle.net/e4bAh/131/

于 2015-05-04T04:04:11.777 回答
5

利用transform="rotate(45, cx, cy)"

cx, cy屏幕中心(或旋转)的坐标在哪里。

这是一个很好的例子

于 2013-05-24T01:18:14.473 回答