Der Grund dafür ist, dass Sie die Transformationseigenschaft zweimal verwenden. Aufgrund von CSS-Regeln mit der Kaskade gewinnt die letzte Deklaration, wenn sie dieselbe Spezifität haben. Da sich beide Transformationsdeklarationen im selben Regelsatz befinden, ist dies der Fall.
Was es tut, ist Folgendes:
- Drehen Sie den Text um 90 Grad. OK.
- 50% mal 50% übersetzen. Ok, dies ist dieselbe Eigenschaft wie in Schritt eins. Führen Sie diesen Schritt aus und ignorieren Sie Schritt 1.
Siehe http://jsfiddle.net/Lx76Y/ und öffnen Sie es im Debugger, um zu sehen, dass die erste Deklaration überschrieben wird
Da die Übersetzung die Drehung überschreibt, müssen Sie sie stattdessen in derselben Deklaration kombinieren: http://jsfiddle.net/Lx76Y/1/
Dazu verwenden Sie eine durch Leerzeichen getrennte Liste von Transformationen:
#rotatedtext {
transform-origin: left;
transform: translate(50%, 50%) rotate(90deg) ;
}
Denken Sie daran, dass sie in einer Kette angegeben sind. Daher wird zuerst die Übersetzung angewendet und danach die Drehung.
Ich kann nicht kommentieren, also hier geht. Über @ David Storey Antwort.
Seien Sie vorsichtig bei der "Ausführungsreihenfolge" in CSS3-Ketten! Die Reihenfolge ist von rechts nach links, nicht von links nach rechts.
Die
rotate
Operation wird zuerst durchgeführt, dann dietranslate
.Siehe: CSS3-Transformationsreihenfolge ist wichtig: Operation ganz rechts zuerst
quelle
Dies ist nicht erforderlich, da Sie den CSS-Schreibmodus mit den Werten 'vertikal-lr' oder 'vertikal-rl' nach Wunsch verwenden können.
quelle
Etwas, das möglicherweise übersehen wird: In meinem Verkettungsprojekt stellt sich heraus, dass eine durch Leerzeichen getrennte Liste am Ende auch ein durch Leerzeichen getrenntes Semikolon benötigt.
Mit anderen Worten, das funktioniert nicht:
aber das tut:
quelle