2012-08-15 65 views
12

我试图弄清楚如何使购物车选项卡,将位于右侧角落,也旋转90度。旋转自然混合的位置,但也许有包装不同包装等的解决办法....绝对位置旋转元素右转角

额外的点,如果有就不需要定义宽度。我不在乎旧版浏览器

+0

http://jsfiddle.net/Dvkgz/ – client 2012-08-15 15:37:21

回答

23

如何使用transform-origin?见DEMO

相关CSS:

#box { 
    position: relative; 
} 
.bg { 
    right: 40px; /* same as height */ 
    height: 40px; 
    transform: rotate(-90deg); 
    transform-origin: 100% 0; 
    position: absolute; 
    line-height: 40px; /* same as height, for vertical centering */ 
} 
+0

辉煌的哇,我永远不会意识到这一点。我会放弃它。谢谢! – client 2012-08-17 05:34:42

+0

感谢您的好建议!是否有不同浏览器对'tranform-origin'的支持的权威描述?目前,[MDN文章](https://developer.mozilla.org/en-US/docs/Web/CSS/transform-origin#Browser_compatibility)相当不完整。 – bfncs 2013-12-08 13:45:47

+0

据我所知,它支持每个支持变换的浏览器。 http://caniuse.com/#feat=transforms2d – Ana 2013-12-09 10:47:35

4

Ana's answer非常好,我指出了正确的方向,但我意识到,你可以达到同样的效果,而无需显式设置高度,行高度和位置的元素要移动 - 相反,刚刚成立translate(0, -100%)

body { 
 
    margin: 0; 
 
} 
 

 
#box { 
 
    position: relative; 
 
} 
 

 
.bg { 
 
\t right: 0; 
 
\t padding: 1em; 
 
\t transform: rotate(-90deg) translate(0, -100%); 
 
\t transform-origin: 100% 0; 
 
\t position: absolute; 
 
\t background: #FF1493; 
 
}
<div id="box"> 
 
\t <div class="bg">   
 
\t \t <div class="txt">He's not the Messiah. He's a very naughty boy.</div> 
 
\t </div> 
 
</div>

...和一个jsFiddle为好措施。

+0

如果您想以相反方式阅读文本,只需添加.txt {transform:rotate(180deg); } – mtness 2018-01-20 09:17:10

+0

在你的片段和小提琴中有一个错字,顺便说一句 - 它应该是类,而不是clss – mtness 2018-01-20 09:18:07

+0

@mtness很好发现 - 更新! – indextwo 2018-01-20 11:33:17