2010-10-01 12 views

Répondre

4

CSS3 possède une propriété rotate que vous pouvez définir. Dans votre feuille de style, il ressemblerait à quelque chose comme ceci:

#mydiv { 
    transform: rotate(45deg); 
} 

Cependant, il est tout à fait nouveau et il a obtenu assez de soutien du navigateur limité en ce moment, il est donc pas idéal.

Certains navigateurs le supportent en utilisant des préfixes de fournisseurs, ce qui signifie qu'il est expérimental, mais vous pouvez quand même les inclure dans votre feuille de style.

Microsoft Internet Explorer dispose d'un mécanisme de rotation complètement différent.

Votre stylesheet final pourrait ressembler à ceci:

#mydiv { 
    -ms-transform: rotate(45deg); /* IE9 beta? */ 
    -moz-transform: rotate(45deg); /* FF3.5+ */ 
    -o-transform: rotate(45deg); /* Opera 10.5 */ 
    -webkit-transform: rotate(45deg); /* Saf3.1+, Chrome */ 
    transform: rotate(45deg); /* CSS3 (for when it gets supported) */ 
    filter: progid\:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand', M11=0.7071067811865476, M12=-0.7071067811865475, M21=0.7071067811865475, M22=0.7071067811865476); /* IE6,IE7 */ 
    -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(SizingMethod='auto expand', M11=0.7071067811865476, M12=-0.7071067811865475, M21=0.7071067811865475, M22=0.7071067811865476)"; /* IE8 */ 
} 

(! Celui que j'ai fourni doit être acceptable pour 45 degrés Vous aurez besoin de travailler les angles vous pour IE)

Cependant, même dans ce cas, vous ne pouvez pas être certain que le navigateur de l'utilisateur le supportera, et il se peut qu'il y ait d'autres bizarreries à gérer.

De même, bien sûr, un élément en rotation sera dégradé en qualité en raison de la pixellisation à l'écran. Cela dépendra de la qualité des algorithmes de rotation du navigateur, mais il y aura toujours une perte de qualité.

En bref, la rotation dans un navigateur (pour le moment au moins) est plus une pièce de jeu qu'une fonctionnalité utile. Mais cela peut être fait.

+1

Vous devriez avoir l'implémentation standard * last * pour que cela remplace les anciens spécifiques au navigateur quand il sort –

+2

@Yi Jiang - vrai, même si en fait dans ce cas, j'ai trouvé que vous * devez * mettre le Les variantes filter() spécifiques à Internet Explorer durent, car leur syntaxe peut provoquer des erreurs dans les analyseurs CSS d'autres navigateurs, ce qui peut entraîner l'ignorance des styles suivants (vous n'avez aucune idée de la durée de débogage nécessaire: -o) – Spudley

+0

Merci, J'essaierai votre solution pour un design qui a l'air cool lorsqu'il est tourné et ne pas aspirer sinon. – Christoph

4

Vous serez en mesure d'utiliser avec CSS transformations, mais il ne fonctionnera pas dans tous les navigateurs.

Modifier:Here's a solution qui prétend fonctionner avec plusieurs navigateurs.

+0

+1 pour la solution IE étonnante. –