2012-08-15 19 views
12

Ich versuche herauszufinden, wie man Warenkorb Tab, die in der rechten Ecke positioniert und auch 90 Grad gedreht werden würde. Die Drehung mischt natürlich die Position, aber vielleicht gibt es einen Workaround des Umwickelns zu verschiedenen Wrappern usw. ...absolute Position gedrehtes Element zur rechten Ecke

Zusätzliche Punkte, wenn die Breite nicht definiert werden müsste. Ich interessiere mich nicht für ältere Browser

+0

http://jsfiddle.net/Dvkgz/ – client

Antwort

23

Wie wäre es mit transform-origin? Siehe DEMO.

Relevante 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

Brilliant wow, das hätte ich nie realisiert. Ich werde es versuchen. DANKE! – client

+0

Danke für diesen tollen Vorschlag! Gibt es eine verbindliche Beschreibung der Unterstützung in verschiedenen Browsern für "Transform-Origin"? Der [MDN-Artikel] (https://developer.mozilla.org/en-US/docs/Web/CSS/transform-origin#Browser_compatibility) ist im Moment ziemlich unvollständig. – bfncs

+0

Soweit ich weiß, wird es in jedem Browser unterstützt, der Transformationen unterstützt. http://caniuse.com/#feat=transforms2d – Ana

4

Ana's answer ist ausgezeichnet und wies mich in die richtige Richtung, aber ich erkannte Sie den gleichen Effekt erzielen können, ohne explizit die Höhe, line-height und Position für das Element zu haben Sie bewegen wollen - stattdessen setzen nur 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>

... und eine jsFiddle für ein gutes Maß.

+0

Wenn Sie den Text anders herum lesen möchten, fügen Sie einfach .txt {transform: rotieren (180deg); } – mtness

+0

gibt es einen Tippfehler in Ihrem Schnipsel und Geige, BTW - es sollte Klasse sein, nicht Clss – mtness

+0

@mtness gut entdeckt - aktualisiert! – indextwo

Verwandte Themen