这应该是一个非常简单的问题。我有一个带有标题文本的方框,想要将其旋转-90度。我希望它是绝对定位的,以便单词的末尾被推入左上角。我可以很容易地将其与底部对齐,但问题在于,对于长度可变的文本,似乎无法使其在顶部对齐时始终保持在容器内部,因为像 {top: 0}
这样的操作会作用于变形之前的标题。对于我的目的,这只需要在Firefox中工作。如果CSS无法实现,我可以使用JavaScript,但你会认为这应该可以只使用CSS就能做到。
这应该是一个非常简单的问题。我有一个带有标题文本的方框,想要将其旋转-90度。我希望它是绝对定位的,以便单词的末尾被推入左上角。我可以很容易地将其与底部对齐,但问题在于,对于长度可变的文本,似乎无法使其在顶部对齐时始终保持在容器内部,因为像 {top: 0}
这样的操作会作用于变形之前的标题。对于我的目的,这只需要在Firefox中工作。如果CSS无法实现,我可以使用JavaScript,但你会认为这应该可以只使用CSS就能做到。
你应该使用transform-origin
来调整变换点,再加上一些对定位属性的巧妙运用。
http://jsfiddle.net/thirtydot/JxEfs/1/
CSS:
#box {
padding: 30px;
position: relative;
border: 1px solid blue;
}
#box > div {
border: 1px solid red;
position: absolute;
top: 0;
right: 100%;
white-space: nowrap;
-webkit-transform: rotate(270deg);
-webkit-transform-origin: right top;
-moz-transform: rotate(270deg);
-moz-transform-origin: right top;
-ms-transform: rotate(270deg);
-ms-transform-origin: right top;
-o-transform: rotate(270deg);
-o-transform-origin: right top;
transform: rotate(270deg);
transform-origin: right top;
}
HTML:
<div id="box">
hello
<div>rotated!</div>
</div>
{right:100%}
是个聪明的解决方案。你应该用这个方法编辑你的答案。我想到的解决方案是在标题周围包装一个旋转180度的变换 div。你的方案更加优雅。 - Mossposition: absolute;
更改为 position: fixed;
以使文本保持在屏幕上。 - Jim可以不使用right:100%这个属性,而是将元素绕左上角旋转270度,然后再将其平移回新的100%宽度。
transform: rotate(-90deg) translate(-100%, 0);
transform-origin: 0 0;
width: 100vh; text-align: right;
即可。 - Simon_Weaver