考虑以下尝试将段落旋转 90 度并将其定位,以使最初是其左上角(因此在旋转后成为其右上角)的角最终位于该段落的右上角父块。
HTML:
<!DOCTYPE html>
<html>
<body>
<div id="outer">
<p id="text">Foo bar</p>
</div>
</body>
</html>
CSS:
#outer {
border: solid 1px red;
width:600px;
height: 600px;
position: relative;
}
#text {
transform: rotate(90deg);
position: absolute;
top: 0;
right: 0;
}
在 OS X 10.6.8 上的 Firefox 19.0.2 中,它失败了。这似乎是因为,尽管给出了 CSS 属性的顺序,但转换是在定位之后应用的。换句话说,浏览器:
#text
使其右上角位于父块的右上角的位置,但只有这样- 旋转它,结果现在它的右上角不在父块的右上角。
结果,该transform-origin
属性在这里没有多大用处。例如,如果使用的一个transform-origin: top right;
则#text
需要向下移动它在旋转之前的宽度。
我的问题:有没有办法告诉浏览器在旋转后应用 CSS 定位属性;如果没有,那么是否有一种方法可以#text
向下移动(例如使用top:
)它在旋转之前的宽度?
注意。理想情况下,该解决方案不应该要求为 设置一个固定width:
的#text
,并且一定不需要 JavaScript。