Position NACH Transformation in CSS?

8

Betrachten Sie den folgenden Versuch, einen Absatz um 90 Grad zu drehen und ihn so zu positionieren, dass die Ecke, die anfänglich die obere linke Ecke war (und die nach der Drehung zur oberen rechten Ecke wird), oben rechts liegt Ecke des Elternblocks.

HTML:

%Vor%

CSS:

%Vor%

In Firefox 19.0.2 unter OS X 10.6.8 schlägt es fehl. Dies liegt daran, dass die Transformation trotz der Reihenfolge, in der die CSS-Eigenschaften angegeben wurden, nach der Positionierung auf angewendet wird. Mit anderen Worten, der Browser:

  1. platziert #text so, dass sich seine obere rechte Ecke in der oberen rechten Ecke des übergeordneten Blocks befindet, aber nur dann
  2. dreht es, mit dem Ergebnis, dass jetzt seine obere rechte Ecke nicht in der oberen rechten Ecke des übergeordneten Blocks ist.

Daher wird die transform-origin -Eigenschaft hier nicht verwendet. Wenn zum Beispiel transform-origin: top right; verwendet wird, muss #text um die Breite nach unten verschoben werden, bevor es gedreht wurde.

Meine Frage: Gibt es eine Möglichkeit, dem Browser mitzuteilen, dass er die CSS-Positionierungseigenschaften nach der Rotation anwenden soll; und wenn nicht, dann gibt es stattdessen eine Möglichkeit, #text nach unten zu verschieben (zB mit top: ) um die Breite bevor es gedreht wurde ?

NB. Im Idealfall sollte die Lösung kein festes width: für #text festlegen und kein JavaScript erfordern.

    
sampablokuper 19.03.2013, 18:44
quelle

5 Antworten

1

Gelöst: hier

Dies ist der Code, den ich hinzugefügt habe:

%Vor%

Ich habe auch einige Präfix-Transformationseigenschaften hinzugefügt, so dass es cross browser

sein wird %Vor%

Wie ich es gemacht habe:

Ich habe dies gefunden Frage und, wie der Name der Website sagt, "fiedelte" mit dem Code, um dieses Verhalten zu erhalten. Ich denke, die Lösung ist left: 100%; anstelle von right: 0; .

(das width: 100%; ist da, weil es aus irgendeinem Grund nicht 100% war und der Text in die nächste Zeile übergelaufen wäre)

    
ThatWeirdo 10.07.2013 16:02
quelle
1

Sie können mehr als eine Transformation auf ein Element anwenden, und die Reihenfolge ist von Bedeutung. Dies ist die einfachste Lösung: Ссылка

%Vor%     
Michael 18.06.2014 17:58
quelle
0

Vielleicht möchten Sie mit der translate-Option herumspielen, die Sie nach dem Drehen als zweite Transformationsfunktion anwenden können, und Ihr Element genau an der gewünschten Position platzieren. Es gibt keine andere Möglichkeit, dem Browser mitzuteilen, die Positionseigenschaften zu verwenden, nachdem die Transformationsfunktion mit plain css verwendet wurde.

Sehen Sie diese Demo - Ссылка

    
agaase 13.01.2014 18:17
quelle
0

Sie können versuchen, CSS3 @ keyframes Animation zu verwenden. Es ermöglicht Ihnen, in beliebiger Reihenfolge zu drehen und neu zu positionieren. Hier ist ein Tutorial, das helfen kann: [CSS-Tricks] [1]

%Vor% %Vor%
    
apaul 21.03.2013 16:20
quelle
-1

Platziere "! wichtig" am Ende der Transformationslinie.

    
Alex Stone 19.03.2013 21:14
quelle

Tags und Links