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/

junho 19th, 2009 at 12:30
@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!
junho 19th, 2009 at 11:53
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. :)
junho 16th, 2009 at 18:50
@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!
junho 10th, 2009 at 12:36
Eu uso comentários condicionais. Na minha opinião fica limpo, o errado separado do certo.
junho 7th, 2009 at 15:33
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.