Pular para o conteúdo

Emanuel Felipe .NET

Desenvolvimento web, blogging, linux e um pouco mais.

Pesquisa

Trabalhando com Comentários Condicionais

13 de março de 2007 Padrões Web

Todos que desenvolvem seguindo os padrões do W3C já estão cansados de ver seus trabalhos ficarem ótimos no Firefox, no Opera e outros navegadores com boa adoção dos padrões. Mas quando chega a hora de testar no Internet Explorer quase sempre surgem problemas para resolvermos.

Partindo do ponto que você implementou o design de seu site por CSS as correções para o IE devem ir também na folha de estilos, então você apela para o uso de hacks que impedem seu código de validar e comprometem seu layout em versões futuras do Internet Explorer. E agora?

Agora você pode esquecer aquele monte de hacks e passar a usar comentários condicionais. Eis um artigo em português bem completo falando deles.

O que quero ensinar é a criar uma folha de estilos exclusiva para o Internet Explorer (por exemplo: ie.css) e incluí-la através dos maravilhosos comentários condicionais da seguinte forma:

<!--[if IE]>
<link rel="stylesheet" type="text/css" href="css/ie.css"></link>
<![endif]-->

Lá você poderá realizar todos os ajustes necessários apenas para o IE sem prejudicar a aparência em outros navegadores e muito menos arruinar a validação de seu código.

Mas ainda há um problema, o Internet Explorer 7 já interpreta corretamente alguns valores mas não o suficiente para não precisar de correções. A solução: como seu ie.css não é examinado pelo validador, você pode usar hacks como colocar _ (underline) antes de cada atributo, exemplo:

margin:10px;
_margin:20px;

Nesse caso o Internet Explorer 7 lê o primeiro atributo e ignora o segundo, e as versões anteriores interpretam os dois, mas aplicam o segundo pois sobrepõem o primeiro. Eu gosto de trabalhar assim, sem misturar as gambiarras de compatibilidade com meu CSS principal.

Vale lembrar que novas versões do Internet Explorer tendem a atender melhor os padrões, então utilize os comentários condicionais e hacks com cautela para que isso não venha a quebrar seu layout em versões futuras.

6 Comentários, comente também!

  1. Linke 19 de março de 2007 às 14:18

    Eu costumo fazer um arquivo especial (estiloIE7.css) somente para o IE 7…e para arrumar no IE6 uso o hack = * html .class … ->
    fica bom também, prq o IE7 interpreta os hacks para o firefox, então prefiro fazer desta maneira.

    att.
    Linke

  2. Emanuel Felipe 19 de março de 2007 às 17:09

    São maneiras diferentes de se trabalhar… O importante é que o resultado é o mesmo. Mas eu gosto da idéia de fazer uma folha de estilo “suja” para um browser “sujo”.

  3. Portfolio reformulado - Emanuel Felipe .NET 28 de junho de 2007 às 11:52

    [...] mais interessante é que não foi preciso nenhum hack para Internet Explorer, nada de comentários condicionais e nem detecção por PHP. Isso se deve principalmente ao CSS Reset, mas folhas de [...]

  4. Mais sobre como livrar-se do Internet Explorer, agora em PHP - Emanuel Felipe .NET 29 de junho de 2007 às 01:35

    [...] você não tenha gostado muito de trabalhar com comentários condicionais, ou nem fosse bem a solução que estava procurando. Nesse caso, que tal tentar um [...]

  5. Comentários condicionais « Miltonweb’s Weblog 28 de agosto de 2008 às 14:15

    [...] forum.imasters – algumas respostastableless – uma visão contra o uso do comentários condicionaisemanuelfelipe rjcorrea – apelando para o PHPalexandremagno – apelando para o Jquerymaujor – ótimow3css marcusvbp [...]

  6. Você tem CSS pra quê? » Blog Archive » Comentários Condicionais – (sem dores de cabeça) 12 de junho de 2009 às 15:20

    [...] escrito a parte de: http://emanuelfelipe.net/blog/trabalhando-com-comentarios-condicionais [...]

Deixe seu comentário:

  • São permitidas as seguintes tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Emanuel Felipe .NET - Todos os direitos reservados.

Isso significa que você não pode copiar ou distribuir o conteúdo deste blog em nenhum outro site sem minha autorização.

Wordpress