La raison en est que vous utilisez deux fois la propriété transform. En raison des règles CSS avec la cascade, la dernière déclaration l'emporte si elles ont la même spécificité. Comme les deux déclarations de transformation se trouvent dans le même ensemble de règles, c'est le cas.
Voici ce qu'il fait :
- faire pivoter le texte de 90 degrés. Ok.
- traduire 50% par 50%. Ok, c'est la même propriété que l'étape 1, donc faites cette étape et ignorez l'étape 1.
Voir http://jsfiddle.net/Lx76Y/ et l'ouvrir dans le débogueur pour voir la première déclaration écrasée
Comme le translate écrase le rotate, vous devez les combiner dans la même déclaration : http://jsfiddle.net/Lx76Y/1/
Pour ce faire, vous utilisez une liste de transformations séparées par des espaces :
#rotatedtext {
transform-origin: left;
transform: translate(50%, 50%) rotate(90deg) ;
}
Rappelez-vous qu'ils sont spécifiés dans une chaîne, de sorte que la translation est appliquée en premier, puis la rotation après.