ImageOi pessoal!

Muita gente por aí se pergunta: "Como usar um CSS para navegadores como Firefox e Opera, e outro para o Internet Explorer?". A verdade é que existem várias maneiras de fazê-lo, mas eu acredito que a maneira mais eficaz é sempre desenvolver seu website usando o Firefox ou Opera como a plataforma de testes. Mesmo que o teu site pareça totalmente "quebrado" no Internet Explorer (IE), navegadores como Firefox são mais compatíveis com os standards do W3C, e isso significa que o teu site terá maior consistência no layout em diferentes plataformas.

Depois que o desenvolvimento do site estiver pronto, é hora de fazer alguns ajustes no CSS para que o IE mostre o site da mesma maneira que no Firefox. Internet Explorer irá traduzir a maior parte do CSS corretamente, daí que não há sentido em fazer uma versão diferente para cada navegador (exceto se os estilos tiverem propriedades diferentes). A solução então será fazer exceções. Para aplicar as exceções do estilos CSS ao IE, é necessário adicionar uma linha em sua página HTML:

Se você usa um CSS externo (recomendado):
<link href="/css/estilo.css" rel="stylesheet" type="text/css" />
<!--[if lte IE 6]>
    <link href="/css/estilo_i6.css" rel="stylesheet" type="text/css" />
<![endif]-->
Se você prefere um CSS na própria página:
<link href="/css/estilo.css" rel="stylesheet" type="text/css" />
<!--[if lte IE 6]>
    <style type="text/css">
        body {color: #000;}
    </style>
<![endif]-->
OBS: esse codigo deve ser inserido dentro da tag <head> em seu codigo HTML. Em outras palavras, entre <head> e </head>Note que o CSS global, que é usado por todos os navegadores deve vir antes do CSS para o IE no seu código HTML. Isso é devido ao fato que os estilos são carregados nessa ordem pelo navegador. Então, uma classe que tenha uma propriedade não compatível com o IE no CSS global, será recarregada com outras propriedades no CSS do IE. Para que isso funcione, as duas classes deverão ter o mesmo nome em ambos os documentos CSS, por exemplo:
/* CSS global */
.suaClasse {
    color: #000;
    margin-left: 15px;
}

/* CSS do IE6 */
.suaClasse {
    margin-left: 0;
}
No exemplo acima, todas as tags que levam a classe ".suaClasse" terão margens de 15 píxels à esquerda em todos os navegadores, mas não no IE6. Isso porque a propriedade "margin-left" no CSS do IE6 ignora a propriedade "margin-left" no CSS global, já que o CSS do IE6 foi carregado depois do CSS global.

Note também que a propriedade da cor da classe ".suaClasse" não foi alterado no IE6. Já que essa propriedade não é uma causa de conflitos no layout, ela não foi re-definida no CSS do IE6. Portanto, a cor da fonte para esta classe continua sendo a mesma.

Seguindo este princípio, você poderá definir somente as exceções necessárias no CSS do IE para que o teu layout apareça com consistência em todos os navegadores - inclusive o IE. Idéia

Abraços,
Wallace

Digg!Reddit!Del.icio.us!Google!Live!Facebook!Slashdot!Netscape!Technorati!StumbleUpon!Spurl!Newsvine!Furl!Fark!Blogmarks!Yahoo!Netvouz!Ma.gnolia!FeedMeLinks!
Comentários (4)add comment
Jorge Fernandes | outubro 11, 2007
1
...
Puxa cara, to com esse problema do Ie mais não consigo resolver nem a pau.
não da certo nem a pau =//

Jorge Fernandes | outubro 11, 2007
2
...
Ahhh, fazendo os teste aqui eu consegui!

o problema é que eu estava colocando o comentário do If dentro da primeira tag style(que faz a importação global)

agora criei outra tag style só para o css do ie e deu certo!

valeu ae smilies/smiley.gif

Rodrigo M. Cidade | maio 14, 2008
3
Muito boa
Valeu a dica. Utilizei e funciona corretamente. Poderia futuramente falar um pouquinho sobre CSS Hacks, Wallace?
Vlw smilies/grin.gif

Meela Ribeiro | link | julho 14, 2008
4
...
A dica é ótima, mas e quando o problema é justamente o contrário? Se o site funciona perfeitamente no Ie e no Opera, mas dá problema no Firefox, tem algum código específico, como esse do IE?

Escreva seu Comentário
Você precisa estar logado para postar um comentário. Por favor registre-se se caso não tenha uma conta
quote
bold
italicize
underline
strike
url
image
quote
quote
Smiley
Smiley
Smiley
Smiley
Smiley
Smiley
Smiley
Smiley
Smiley
Smiley
Smiley
Smiley

security image
Escreva os caracteres mostrados


busy