Ola galera, mais uma vez estou aqui trazendo um artigo que pode ser interessante para a maioria dos desenvolvedores, pois é uma maneira de rotacionar textos em todos os navegadores sem ter que fazer uso de nenhum tipo de imagem, o que torna o site bem mais leve.
Quando eu falo todos os navegadores é porque existe uma maneira de fazer funcionar no Internet Explorer também.
Para rotacionar textos no Firefox e em outros navegadores que tem os padrões de CSS atualizados é muito simples rotacionar qualquer tipo de objeto na tela (Webkit e Firefox 3.5), basta utilizar uma propriedade e falar quantos graus devem ser modificados, da seguinte forma:
-webkit-transform: rotate(270deg); -moz-transform: rotate(270deg); -o-transform: rotate(270deg);
Bem simples, porém como sempre temos um problema, chamado IE.
Que no meu ver não é tão ruim assim se você você estiver disposto em aprender como solucionar os seus problemas. São muitos mas boa parte deles já tem um bom Hack para consertar, basta ter interesse.
Para que rotacionar elementos funcione no Interent Explorer basta você usar os filtros que são fornecidos pelo MSDN no seu banco de dados para desenvolvedores.
No caso iremos usar o BasicImage, que é um filtro que te permite fazer vários tipo de manipulações com elemento, tipo transformá-lo em Preto e Branco.
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
Bom estermos usando a propriedade rotation do filtro, que nos permite girar o elemento em 4 ângulos diferentes com 4 inteiros diferentes, sendo eles: 0, 1, 2 e 3 e rotacionando em 0, 90, 180 e 270 graus respectivamente.
Essas propriedades só irão funcionar em elementos que tenham a propriedade de bloco, ou seja, para elementos de texto, como um span será necessário adiconar a seguinte propriedade ao elemento em CSS:
display:block;
Colocando em Prática os conhecimentos novos
Eu estava lendo um pouco do CSS-Tricks, um maravilhoso site sobre CSS, e me deparei com a dica de usar sprites para fazer as data dos artigos colocados no blog, para aqueles temas que usam um tipo de pequeno calendário para exibir a data.
Fiquei intrigado com a idéia, porém achei que era meio ruim para um site de longo prazo, que tem sei la uns 8 ou 9 anos de existencia, pensei que seria melhor apenas rotacionar os elementos. Mas ai me veio a idéia de que teria o Internet Explorer para me atrapalhar, e dias depois descobri o banco de dados para desenvolvedores da MSDN, e este tornou a idéia possível.
Então como fazer é bem simples, vamos aplicar o que aprendemos mais acima, vamos criar um código da seguinte forma:
<div class="data"> <span class="dia">07</span> <span class="mes">Dez</span> <span class="ano">2009</span> </div>
Após feito isso iremos adicionar um pequeno código CSS para que fique na posição que desejamos, e é claro adicionar a rotação:
<style type="text/css" media="screen">
* { margin: 0; padding: 0px; outline:none; border:none; }
body { padding:20px; font-family: Arial, Helvetica, sans-serif; }
.data { background-color:#dedede; color:#3e3e3e; float:left; position:relative; padding:40px 5px 0px; }
.data .mes { text-transform: uppercase; font-size:25px; }
.data .dia { font-size:36px; line-height:45px; position:absolute; left:5px; top:0px; }
.data .ano { display:block; font-size:12px; position:absolute; right:-5px; top:15px; -webkit-transform: rotate(-90deg); -moz-transform: rotate(-90deg);-o-transform: rotate(90deg);
}
div.footer { position: absolute; bottom:0px; width: 95%; height:30px; padding: 15px 2%; border-top:1px solid #e1e1e1;}
</style>
<!--[if IE]>
<style>
.data .ano { filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); right:2px!important; top:8px!important; }
</style>
<![endif]-->Após adicionado este CSS deve ficar como na imagem abaixo:

Você pode dar uma olhada se funciona no seu navegador, caso não funcione da maneira que deveria, por favor deixe um comentário com as informações do seu navegador

Edwin
on 02/07/2010 at 10:46 said:Muito bom o código…Obrigado.
Só não funciona no Opera infelizmente…estou procurando se tem alguma solução…
Mais foi bastante útil…^^
Abraços…
Gustavo Bordoni
on 02/07/2010 at 11:41 said:Acabei achando a solução para rotacionar no Opera, e já coloquei no CSS.
Só utilizar o
-o-transform: rotate(30deg);carvalho
on 03/12/2010 at 14:29 said:não me está a funcionar no IE. alguém sabe porquê?
Gustavo Bordoni
on 26/01/2011 at 02:11 said:Qual versão você está usando?
Tava refazendo alguns testes e me parece normal.
Mas diga lá que eu vejo o que posso fazer para ajudar.
Débora
on 22/02/2011 at 19:32 said:Olá,
Preciso rotacionar um elemento com css, mas no IE dá esse problema que você citou. A questão é que eu preciso girar apenas uns 30º então a sua solução não daria certo pra mim. Alguém sabe de alguma outra que possa usar apesar para girar uns 20 a 30 graus a minha imagem?
Gustavo Bordoni
on 22/02/2011 at 21:49 said:Olá Débora,
Existe uma solução que te permite girar quantos graus você quizer. Eu vou preparar uma atualização desse artigo para adicionar essa forma e te aviso quando tiver pronto.
Débora
on 23/02/2011 at 18:06 said:Valeu Gustavo!
Vou aguardar então.
Já pesquisei em vários sites e o único que achei eu não consegui compreender até agora como funciona..=/
Natalia
on 16/08/2011 at 10:09 said:Olá, conseguiram encontrar a solução para girar 30 graus no IE?
Agradeceria muito!!!!!!
Gustavo Bordoni
on 18/08/2011 at 15:26 said:Olá Natália, segue a solução para todos os IEs, depois eu posto o site que estou montando em PT-BR para criar uma pá de regrinhas de CSS, bem úteis.
-moz-transform: rotate(30.0deg); -o-transform: rotate(30.0deg); -webkit-transform: rotate(30.0deg); -ms-transform: rotate(30.0deg); transform: rotate(30.0deg); filter: progid:DXImageTransform.Microsoft.Matrix( M11=0.8660254037844387, M12=-0.49999999999999994, M21=0.49999999999999994, M22=0.8660254037844387, sizingMethod='auto expand'); zoom: 1;adailton
on 26/03/2011 at 18:57 said:nao funcionou no chrome 09 nao funcionou no firefox 3.6 nao funcionou no ie7 deve ser problema no meu pc.
Gustavo Bordoni
on 26/03/2011 at 19:58 said:Adailton,
Testei no Chrome e no Firefox indicados, e funciona. No IE estou escrevendo uma solução mais interessante, para poder rotacionar em qualquer angulo.
Roger Russel
on 28/04/2011 at 21:22 said:Vai achar até meio bob, mas no IE8 ele rotacionou, só não posicionou igual
, digo o 2009 ficou junto com o 07 …
Mas acho que não é um problema com a solução mesmo
…
Milton
on 13/09/2011 at 23:39 said:Boa noite, tudo bem com você? Obrigado por compartilhar o seus conhecimentos conosco! Só estou com uma duvida, vou começar a criar um site, só que a pessoa pediu algumas imagens rotacionada na tela principal, só que uma por cima da outra, mas rotacionada, como se fosse uma baralho espalhado um por cima do outro, esse codigo funciona com imagens? Ou teria alguma outra forma melhor? Obrigado pela atenção e fica com Deus!
Gustavo Bordoni
on 14/09/2011 at 00:14 said:Esse código funciona com imagens mas, verifique se em seu CSS as imagens estão declaradas como bloco
display:block;para que seja possível o browser fazer a rotação. Sim é possível mas é necessário saber um pouco de como funciona o CSS para organizar as imagens em Layers para ficar parecido com cartas. Procure por z-index que será de grande ajuda.danthy
on 29/02/2012 at 16:40 said:muito bom seu post!
mas ocorreu um problema que seria alterar a fonte e não estou conseguindo solucionar…
poderia me ajudar
Atenciosamente,