FrancaisAdobe Flex Tutorial
jeux flash gratuit
Besoin d'aide pour progresser au poker? Venez suivre les conseils des spécialistes sur Launchpoker: il ne vous faudra pas longtemps pour devenir à votre tour un vrai pro du Texas Holdem.

[Web] - Hack CSS et Commentaires Conditionnels pour IE7


Recapitulatif de la syntaxe des hack et commentaires conditionnels
Hack CSS et Commentaires Conditionnels pour IE7
Hack CSS vs commentaires conditionnels

Comme tout le monde le sait, il est difficilement gérable (voire impossible) d'avoir le même rendu sur tous les navigateurs dès que l'on veut réaliser un design complexe. Le problème venant surtout de la manière différente des navigateurs à interpréter les padding, margin, height et autres ...
Pour y remédier, il y a une solution plutôt simple, les Hack CSS. Les Hack sont ces instructions comprises par certains navigateurs et pas par d'autres. Ils s'intègrent directement dans le fichier CSS, comme un bloc d'instructions et viennent donc ralonger le code et nuire à sa lisibilité.
Avec l'arrivée d'IE7, je me suis aperçu que mon site comprenait certains décalages sous IE7 avec certains div. En effet, IE7 n'interprétait plus ma feuille de style css avec mes hack comme les précedentes versions.

Pour redonner à ma page son look original, j'ai trouvé deux solutions :
  • utiliser de nouveaux hack spéciaux à IE7
  • utiliser des commentaires conditionnels
Cette dernière solution est celle conseillée par le blog IE Microsoft. Elle permet en effet de ne plus utiliser des hack mais des feuilles de style css à part suivant la version du navigateur (uniquement pour Internet Explorer).





Les Hack CSS

Le Star Hack (*hack) :

Sûrement le plus utilisé car très simple à implanter, le Star Hack utilise un "bug" d'IE qui ne gère pas les parents/enfants en css.
Un exemple :
#header {
	/*Ce code sera interprété par tous les navigateurs mais IE ne connait pas la propriété min-height mais utilise height  */
	min-height:20px;
}


* html #header{
	/*Ce code sera interprété uniquement par IE et appliquera donc cette hauteur minimale, souvent utile pour afficher des backgrounds  */
	height:20px;
}


* html .header{
/* De même si vous utilisez des class au lieu des id */
}
Malheureusement, la version 7 d'Internet Explorer ne se prend plus dans la faille et n'applique pas les règles incluses dans un star hack. C'est donc dans ce cas que l'on se rend compte de l'utilité des commentaires conditionnels.

Le Underscore Hack (_hack) :

#header {
	/* Les autres navigateurs (Firefox, Opera, ...) interpréteront uniquement cette ligne */
	position: fixed;
	/* Seul Internet Explorer interprétera cette ligne */
	_position: absolute;
	...
}

Le *+html hack :

Une version modifiée du star hack qui est interprétée exclusivement par IE7
*+html #header_haut{
	/* Cette portion de code est interprétée exclusivement par IE7 */
	margin-top:-20px;
}
A l'usage, on se rend compte de la simplicité de ces hack mais aussi de leur non-fiabilité. Un nouveau navigateur qui n'interprète plus votre code de la même manière et tout est à refaire. C'est pourquoi il est préferable d'utiliser les commentaires conditionnels présentés plus loin.





Les Commentaires Conditionnels

Les commentaires conditionnels sont propres à Internet Explorer (>v5.0) et ne seront donc pas interprétés par les autres navigateurs (FireFox, Safari, Opera). Ils sont en plus conformes html 4.01 et xhtml 1.0.
Dans ces exemples, on va voir comment ils peuvent servir à désigner une version spécifique d'Internet Explorer ou un groupe de version avec des opérateurs spéciaux. Ces lignes doivent bien sur être insérées entre les balises "head" de votre page puisqu'elle lie des feuilles de style spécifiques.

Désigner toutes les versions d'IE :

<!--[if IE]>
	<link rel="stylesheet" type="text/css" href="/css_special_ie.css" media="screen" />
<![endif]-->

Désigner une version spécifique d'IE :

<!--[if IE 5.0]>
    <link rel="stylesheet" type="text/css" href="/css_special_ie5_0.css" media="screen" />
<![endif]-->


<!--[if IE 5.5000]>
    <link rel="stylesheet" type="text/css" href="/css_special_ie5_5.css" media="screen" />
<![endif]-->


<!--[if IE 6]>
    <link rel="stylesheet" type="text/css" href="/css_special_ie6_0.css" media="screen" />
<![endif]-->


<!--[if IE 7]>
    <link rel="stylesheet" type="text/css" href="/css_special_ie7.css" media="screen" />
<![endif]-->

Désigner une version d'IE supérieur ou égale à :

<!--[if gte IE 5]>
	/* on utilise ici l'opérateur gte : greater than or equal 
    spécifier ici les feuilles de style pour IE 5.0, IE5.5, IE6.0 et IE7.0 */
<![endif]-->


<!--[if gte IE 5.5000]>
	/* spécifier ici les feuilles de style pour IE5.5, IE6.0 et IE7.0 */
<![endif]-->

Désigner une version d'IE inférieure ou égale à :

<!--[if lte IE 6]>
	/* on utilise ici l'opérateur lte : lower than or equal 
    spécifier ici les feuilles de style pour IE5.0, IE5.5 et IE6.0 mais pas IE7.0 */
<![endif]-->

Les commentaires conditionnels représentent ainsi une manière fiable de manipuler les css mais ils ont aussi leurs limites. En effet, il faut rajouter ces lignes de code sur toutes les pages, ce que est simple pour un site dynamique en plaçant un include mais peut être long s'il on doit l'ajouter à des dixaines de pages html.





Inclure un SWF Flash dans une page (X)HTML valide >





Commentaires

Vous devez être inscrit pour pouvoir ajouter un commentaire
bouton inscription jeux
Aide | Contact | Règlement | Plan du Site | tutorial illustrator flash css php