Les Hack CSS en cas de bug selon le navigateur

Posté par Kaz le 20 - août - 2009

Bon si vous lisez ça j’imagine que vous avez eu un problème avec la compatibilité de votre webdesign sur différent navigateurs (entre autre un affichage parfait sur Firefox, opera, safari, chrome ou autres et un problème sur internet explorer 7 ou 6 ).

En effet la mise en page de votre design ne se fait pas correctement, un code position : absolute; doit devenir position : relative; afin de fonctionner parfaitement sous IE mais du coup ça bug sur les autres navigateurs ?

Que faire ? Vous avez déjà arrachez là moitié de vos cheveux à essayer de faire cette mise en page et vous n’arrivez vraiment à rien.

Pas de panique, c’est là qu’entre en scène le hack CSS. En gros pour faire court le hack css consiste à écrire une balise que seul tel ou tel navigateur lira et pas un autres.

Comme vous le savez déjà, Pour que le code soit lu par tous les navigateurs il suffit de taper la balise normalement c’est à dire comme ça :

EXEMPLE :

margin-top : -15px;

Maintenant si vous voulez que ce même code soit lisible uniquement par IE6 il vous faudra taper ceci :

EXEMPLE :

_margin-top : -15px;

Maintenant si vous voulez que ce même code soit lisible uniquement par IE6 ET IE7 il vous faudra taper ceci :

EXEMPLE :

/margin-top : -15px ;

Maintenant si vous voulez que ce même code soit lisible uniquement par Firefox il vous faudra taper ceci :

EXEMPLE :

margin-top : -15px !important;

Pour expliquer un peu tous ça, tous les navigateurs peuvent lire la balise classique du type « margin-top », ensuite seul IE6 peux lire la balise « _ » , seul IE6 et IE7 peuvent lire la balise « / » et seul firefox peux lire la balise « !important ».

Pour exemple admettons que l’on veuille différent margin pour chacun des navigateurs, en sachant qu’une balise identique placé après une autres l’annule pour exemple si je met :

EXEMPLE :

body{
margin-top : -15px;
margin-top : 20px;
}

Le margin-top de body sera de 20px et non pas -15px, la dernière balise faisant foi.

Donc si nous voulons appliquer les balise hack css rien de plus simple, nous commençons par la balise classique ensuite celle pour firefox, celle pour ie6 et ie7 et ensuite celle de ie6 pour exemple :

EXEMPLE :

body{
margin-top : -15px;
margin-top : -12px !important;
/margin-top : 10px;
_margin-top : 0px;
}

En gros tous les navigateurs qui ne savent pas lire les balise : « !important », « / », et « _ » auront un margin-top de -15px, ensuite firefox aura un margin-top de -12px, IE7 aura un margin-top de 10px et IE6 aura un margin-top de 0px en effet vu que la balise IE6 arrive après celle de IE6+IE7 alors IE6 prendra la dernière du code à savoir 0px, pas évident à expliquer mais si vous ne comprenez pas j’approfondirais.

A savoir que le hack css n’est pas valide W3C mais qu’il n’empêche en rien la validité réel de votre code ainsi que l’accessibilité réel de votre site, c’est juste un gain de temps et une simplification pour vous.

A savoir aussi que la balise margin-top n’est là qu’à titre d’exemple et que ce type de Hack CSS fonctionnent parfaitement avec les autres balise CSS.

En cas de problème n’hésitez pas à demander dans les commentaires je vous aiderais du mieux que je peux.

VN:F [1.9.3_1094]
Que pensez-vous de cet article ?
Rating: 10.0/10 (1 vote cast)
Les Hack CSS en cas de bug selon le navigateur, 10.0 out of 10 based on 1 rating

A propos de l´auteur : Kaz

Passionné d'informatique et de technologie depuis tout petit, Kaz, fondateur de kazmag, partage ses connaissances, découvertes et vidéos à travers des articles simples et compréhensibles par tous. Kaz est aussi connut sur internet pour ses participations à de nombreux forum tel que A Do Be où il est co-fondateur.

Kaz a écrit 74 articles sur KazMag.com.

Vous avez aimé cet article ? Faites-le savoir !

Poster une réponse

Vous voulez afficher votre propre avatar ? Allez simplement vous inscrire sur Gravatar.

VIDÉO

TAG CLOUD

Partenaires

À propos de moi


PageRank Actuel

http://www.wikio.fr

Pseudo : Kaz
Nom : Chaine
Prénom : Edwin
Age : 23 ans
E-mail : edwin_chaine[at]hotmail.com

Twitter