考虑以下尝试将一个段落旋转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属性在这里没有多大用处.例如,如果一个人使用了变换原点:右上角;然后#text需要按照它旋转之前的宽度向下移动.
我的问题:有没有办法告诉浏览器在轮换后应用CSS定位属性;如果没有,那么有没有办法向下移动#text(例如使用top :)按旋转之前的宽度?
NB.理想情况下,解决方案不应要求设置固定宽度:对于#text,并且不得要求JavaScript.
解决方法
解决:
here
left: 100%; width: 100%; -webkit-transform-origin: left top;
-webkit-transform:rotate(90deg); -moz-transform:rotate(90deg); -ms-transform:rotate(90deg); -o-transform:rotate(90deg); transform:rotate(90deg);
我是怎么做到的
我发现了this问题,并且正如网站名称所说,“摆弄”代码以获取此行为.我想解决方案是:100%;而不是右:0;.
(宽度:100%;是否因为某种原因它不是100%而且文本会溢出到下一行)