Les hacks css, pour que votre site passe sur tous les navigateurs (même internet explorer)

Publié le par Bertrand

Si vous êtes tout comme moi Webmaster, vous avez déja dû dans des projets un tant soi peu complêxes graphiquement, vous arracher les cheveux à cause des problèmes de disposition.

En effet, qui n'a jamais effectué une intégration XHTML parfaite sous firefox et opéra, et s'est aperçu(e) ensuite que le rendu est affreux sous internet explorer?

Pour palier à ces problèmes, nous pouvons utiliser les "hacks css", qui vous permettront d'écrire des règles spécifiques pour un navigateur, et parfois même, pour une version de ce navigateur.

On va supposer que nous souhaitons travailler avec cet élément: <div id="ethtezahl"></div>

Traditionnellement, on écrira:
#ethtezahl{
  /* Règles css ici */
}

Cette règle sera lue par tous les navigateurs.

Voici comment faire une règle CSS qui ne sera interprétée que par internet explorer 6:
* html #ethtezahl{
  /* Règles css spécifiques à internet explorer 6 ici */
}

Voici comment faire une règle CSS qui ne sera interprétée que par internet explorer 7:
*+html #ethtezahl{
  /* Règles css spécifiques à internet explorer 7 ici */
}

Voici comment faire une règle CSS qui ne sera interprétée que par Mozilla Firefox:
html:not([lang*=""]) #ethtezahl{
  /* Règles css spécifiques à Mozilla Firefox ici */
}

Voici comment faire une règle CSS qui ne sera interprétée que par Mozilla Firefox 2:
#ethtezahl, x:-moz-any-link{
  /* Règles css spécifiques à Mozilla Firefox 2 ici */
}

Voici comment faire une règle CSS qui ne sera interprétée que par Mozilla Firefox 3:
html>/**/body #ethtezahl, x:-moz-any-link, x:default{
  /* Règles css spécifiques à Mozilla Firefox ici */
}

Voici comment faire une règle CSS qui ne sera interprétée que par Safari 3:
html[xmlns*=""] body:last-child #ethtezahl{
  /* Règles css spécifiques à Safari 3 ici */
}

Voici comment faire une règle CSS qui ne sera interprétée que par Opera 9:
@media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0)
{
  #ethtezahl {
  /* Règles css spécifiques à Opéra 9 ici */
  }
}

Voici comment faire une règle CSS qui ne sera interprétée que par Konqueror 3.4.3 et supérieurs:
html:not(:nth-child(1)) #ethtezahl {
  /* Règles css spécifiques à
}

Voici comment faire une règle css qui en sera interprétée que par chrome:
/*\*/
html*##ethtezahl {
  /* Vos règles CSS spécifiques à Google chrome. Mais évitez les crochets, vous auriez de droles de surprises. */
}/*end*/
.dummyend[id]{clear:both;}

Publicité

Publié dans Mémo

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
D
<br /> Génial !<br /> C'est la première fois que je rencontrai un problème d'affichage seulement sous Chrome + Safari.<br /> IE simple a résoudre avec<br /> Mais impossible de trouver un bon compris avant de lire ton article....<br /> J'ai don optimisé pour Chrome et Safari, mis un if IE et hacké FF3 !<br /> <br /> Merci bcp !<br /> <br /> <br /> Merci beaucoup<br /> <br /> <br />
Répondre
W
salut, bonnes infos... <br /> <br /> mais je sais pas si je m'y prends mal, mais ca ne marche pas chez moi.<br /> j'ai essayé pour FF, FF3, Chrome... mais aucune différence dans ma page.
Répondre
B
Je crois que ya une faute pour le Hack de chrome, c'est pas plutôt <br /> /*\*/<br /> html*#ethtezahl { .....<br /> <br /> avec un seul dièse ça fonctionne pour moi, mais pas avec les 2, ou alors c'est moi qui ai un bug !
Répondre
B
OK, merci, je regarderai ça !
Répondre
B
Salut Bertrand, je viens vers toi car nous venons de lancer la V2 du site de notre agence web, et j'ai un souci sous FF mac (pas pareil que FF windows), connaitrais tu des hacks css uniquement pour FF mac ? (le site c'est http://www.e-dilik.com)<br /> <br /> Sache que cette page de ton blog est ma bible en tant que hack css !!<br /> <br /> A Plus !
Répondre
B
<br /> Salut Antoine!<br /> <br /> Désolé, je ne connais pas de hack css pour firefox mac, je ne suis même pas sûr qu'il en existe en tant que tel.<br /> <br /> A la rigueur, en php, tu peux détecter si l'os de ton visiteur est un mac et le navigateur Firefox, et dans ce cas, ajouter une balise link (après les autres) appelant un fichier css fait pour<br /> firefox mac<br /> <br /> <br />