Hacks CSS ou Comentários Condicionais?

Em busca por uma padronização na renderização dos sites, surge um problema principalmente com o navegador Internet Explorer no entendimento do CSS e frente a isso são disponibilizados algumas técnicas, artimanhas que devem ser implementadas afim de solucionar tais problemas e tornar uniforme e única a visualização de um site em qualquer navegador.

Agora, até que ponto é válido utilizar estas técnicas afim de servir os navegadores que não seguem as Web Standards? Será que vale a pena? Indo direto assunto, utilizar Hacks CSS, Comentários Condicionais, os dois em conjunto ou nenhum dos dois?

O que é um Comentário Condicional?

Comentário condicional é uma estrutura de comentário HTML que o Internet Explorer para Windows  interpreta de maneira diferente de outros navegadores e tem uma sintaxe capaz de ser reconhecida seletivamente por diferentes versões do navegador. O uso deste mecanismo é capaz de fazer com que o Internet Explorer ignore ou inclua o conteúdo do comentário condicional como marcação HTML regular

E o que são Hacks?

Uma maneira de escrever um código alternativo para ser servido a um determinado dispositivo que não interpreta de modo correto o código-padrão.

Não Use Hacks

[...] hacks implicam em potenciais complicações e devem ser evitados sempre que possível. [...] O maior benefício no uso de comentários condicionais é que não é baseado em bugs do navegador para solucionar inconsistências. O uso de hacks CSS se baseia em bugs, e assim, ao usarmos, ficamos sujeitos a inconsistências em futuras versões do navegador que tenham tais bugs corrigidos ou em outros navegadores com os mesmos bugs. http://maujor.com/tutorial/hacks-css.php

Não use Comentários Condicionais

[...]A utilização de comentários condicionais não é uma excelente maneira de contornar bugs [...] Esta prática faz com que o desenvolvedor tenha duas versões do CSS para fazer manutenção, corrigir falhas, implementar novas mudança [...]http://www.tableless.com.br/comentarios-condicionais-nao-use

Escolha seu Lado

Alguns defendem o uso de Hacks CSS, outros dizem que não são seguros. Uns apóiam o uso de comentários condicionais, outros são contra.

Como estou no engatinhando, aprendendo a andar no que se refere a CSS não me arrisco ainda em defender tal técnica ou outra. Utilizo sim quando surge a necessidade e depois de um tempo procurando e estudando aplico uma solução plausível mesmo quando esta envolva Hacks e/ou Comentários Condicionais.

Gostaria de levantar aqui este debate. Você defende ou abomina tais técnicas?

Links de Referências:

http://maujor.com/tutorial/hacks-css.php

http://www.tableless.com.br/comentarios-condicionais-nao-use

http://www.tableless.com.br/csshacks-ou-comentarios-condicionais-nenhum-dos-dois-claro

http://owebmaster.wordpress.com/2008/06/29/css-hacks-ou-comentarios-condicionais/


5 Responses to “Hacks CSS ou Comentários Condicionais?”

  • Matheus Says:

    @Jeronimo Fagundes

    “(mais fácil mudar a página do que mudar o navegador)”

    É verdade….. e como ainda não é tão fácil mudar o hábito e o gosto do internauta COMUM pel IE por outros navegadores que seguem padrões W3C, nós, desenvolvedores web, temos muita coisa pela frente!!

    Obrigado pela visita, volte sempre!

  • Jeronimo Fagundes Says:

    Que coisa. Eu ia escrever em meu blog um post exatamente sobre isso, mas aí encontrei o teu antes. Ainda bem. :) Escreveu bem melhor do que eu estava pensando em escrever hehehehehe
    É uma batalha. Uns defendem, outros combatem.
    Eu não defendo, mas também não combato mortalmente. Acho que, quem quer usar, que use. Contudo, creio que devemos seguir os padrões – sintáticos e semânticos – estabelecidos pelo W3C, e com eles podemos muito bem passar sem essas técnicas “cabulosas”. Creio que se seguimos os padrões e algum navegador não interpretou como deveria por falta de suporte ao padrão, o problema é do navegador, e não do desenvolvedor web.
    Mas há quem considere que o problema é do desenvolvedor web, pois ele é o mais próximo do usuário (mais fácil mudar a página do que mudar o navegador).
    Enfim, acho que é uma daquelas discussões intermináveis, e da qual nunca tiraremos uma conclusão.
    No mais, parabéns pelo blog, ainda não o conhecia. Adicionando ao RSS reader. :)

  • matheus Says:

    @Thiago Cavalcanti

    Como sempre em seus comentários enriquecendo e tirando diversas dúvidas e incitando novos desafios!!! Valeu pela exposição de opnião

    @Fabrício Godoy

    Obrigado pelo comentário, volte sempre!

  • Fabrício Godoy Says:

    Eu uso comentários condicionais. Na minha opinião fica limpo, o errado separado do certo.

  • Thiago Cavalcanti Says:

    O Maujor explicou perfeitamente. Hacks são uma bomba, podem estragar um site em versões futuras dos navegadores. Péssima idéia. Evite-os sempre que possível.

    Já os comentários condicionais são perfeitamente inócuos, se utilizados corretamente. Como assim? Basta utilizá-los pontualmente, somente para resolver problemas como o que você apontou no post anterior. Utilizar comentários condicionais para servir um CSS completamente alternativo aos Explorers realmente é uma imbecilidade. É possível até utilizar identificação server-side do UA para somente incluir os comentários condicionais quando o cliente acessar com os IEs que causarem problemas, diminuindo assim em algumas dezenas de bytes o download do documento principal para todos os outros navegadores. ;)

    Agora mesmo, estou desenvolvendo um site com CSS bastante avançado para um cliente e, como não poderia deixar de ser, precisei contornar um bug dos Explorers 6 e 7. O resultado:

    screen.css (minificado e gzipped): menos de 4 KBs, servido para todo mundo, normalmente.

    ie.css (minificado e gzipped): uns 250 bytes, servido exclusivamente para os IEs 6 e 7, via comentários condicionais.

    Posso ficar tranquilo que nenhum outro navegador vai interpretar o que está nos comentários e que eles continuaram sendo ignorados pelos IEs 9 e seguintes, assim como são ignorados pelos 8.

    O problema do Diego é que quando ele vê algum retardado na net usando dinamite para destruir formigueiros já sai dizendo por aí que dinamite é um negócio inútil que faz uma bagunça enorme por uma besteira. Minha vó já me dizia: devagar com o andor que o santo é de barro!

    PS: não sou hipócrita, já utilizei hacks sim, antes de me tornar freelancer, por pura falta de tempo, como é o caso de muitos. Atualmente eu tenho o luxo de definir prazos razoáveis junto aos meus clientes, de forma que não corro mais esses riscos.

Leave a Reply