2012-08-15 54 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