CSS Hacks para Firefox

CSS Hacks para Firefox

Antes de tudo: Por que fazer hacks para o Firefox, que exibe o CSS corretamente, se é possível fazer um hack apenas para o IE?

CSS Hacks para FirefoxPrimeiro: o Firefox também tem seus bugs, a própria Mozilla Foundation mantém uma página exclusivamente dedicada à eles, a Bugzilla. Claro, é verdade que se o erro for apenas no Firefox, é possível simplesmente corrigir o CSS para ele e usar um hack do IE para que as coisas fiquem perfeitas nos dois browsers.
Porém, a questão é: O Firefox 3 interpreta algumas propriedades diferentemente do Firefox 2, o que hora ou outra pode causar problemas. E nesses casos é preciso alterar o CSS para apenas uma das versões.

Segundo: Em alguns casos é necessária uma correção urgente, que não demande tempo para vários testes, alterações no HTM ou várias linhas de CSS. Se o seu site tem milhares de acessos por hora, o ideal é corrigir primeiro, refinar depois.

Seguem então algumas soluções que venho usando:

CSS Hack apenas para Firefox 2

Se o seu site está apresentando erro apenas no Firefox 2, agradeça. É o cenário mais simples de resolver, basta usar o seguinte hack:
#meudiv { background:red; } /* todos os navegadores */
#meudiv[id=meuDiv] { background:green; }/* só Firefox 2 */

Como funciona: usamos o seletor de atributos entre chaves para selecionar todos os elementos que tenham id = ‘meuDiv’. Porém perceba que o ‘D’ está maiúsculo. Só o Firefox 2 é case-insensitive, ignorando letras maiúsculas e minúsculas. Ou seja, para o Firefox 2 meudiv é igual a meuDiv, para todos os outros navegadores não.

CSS Hack para Firefox 3

O problema só aparece no Firefox 3? Bem, aqui as coisas complicam um pouco. Isso porque todos os hacks específicos para esta versão não são totalmente confiáveis em todas as plataformas [windows, mac, linux]. O único hack para FF3 que se comporta de maneira constante em todos os sistemas tem um porém: é reconhecido também pelo IE7:
#meudiv { background:red; } /* todos os navegadores */
#meudiv, x:-moz-any-link, x:default { background:yellow; } /* Firefox 3 e IE7 */

Então é preciso, ao final, adicionar uma linha para restabelecer o valor para o IE7:
#meudiv { background:red; } /* todos os navegadores */
#meudiv, x:-moz-any-link, x:default { background:yellow; } /* Firefox 3 e IE7 */
#meudiv { *background:red; } /* Restabelece valor para o IE7 */

E, só pra relembrar: ‘Hack’ para qualquer Firefox

Se o problema está aparecendo nas duas versões do Firefox, a solução mais simples é corrigir o CSS focando este erro e, caso o erro venha a ocorrer no IE após a correção, utilizar hacks para o navegador da Microsoft:
background-color:red; /* Corrige o problema no FF */
*background-color:blue; /* Retorna o valor para IE */

Se tiver dúvida dê uma olhada aqui: CSS Hacks - IE6, IE7, Firefox

Enfm, mais hacks… Eu gostaria de não precisar deles, gostaria de escrever meu CSS 100% válido e não ter que redeclarar margin, padding, float duas, três vezes no mesmo código por causa de um ou outro navegador. Mas infelizmente isso não é possível..




Comente!



Domênico Citrângulo

Sobre Domênico Citrângulo Sou Designer, formado em Publicidade e Propaganda, tenho 26 anos e trabalho há mais de 7 anos desenvolvendo projetos Web. Atualmente moro em São Paulo e faço parte da equipe de arte do portal Terra, onde entrei em meados de 2005.

Sobre o blog Acho que o que me levou a criar o top rated é basicamente a mesma vontade que deu origem a vários outros blogs. Compartilhar idéias e coisas interessantes com amigos e descobrir, através de interesses comuns, outros amigos. Saiba mais.

Procure no Top Rated Procurar
Outros assuntos:

Powered by Wordpress
Tema Top Rated Never Dies de Domênico Citrângulo