Quelqu'un pourrait m'expliquer les commentaires conditionnels ?
D'après ce que j'ai vu dans la FAQ il faut mettre le bout de code différencié pour IE à l'intérieur des balises <head></head> de la page (après le link de la feuille CSS, je pense) :


#contenu img {
	float: left;
	margin: 0 0 0 20px;
	padding-bottom: 15px;	}


Le code de la page CSS :


<!--[if lt IE 6]>
<style type="text/css">
#contenu img {
	float: left;
	margin: 0 0 15px 20px;	
}
</style>
<![endif]-->


Résultat pas de différence visible, y'aurait-il qqchose que je n'ai pas compris ?

Merci pour vos infos complémentaires.

Jack
Modifié par EricLB (21 Sep 2005 - 11:19)
Bonjour,

Les commentaires conditionnels sont des commentaires HTML presque comme les autres (si ce n'est qu'IE Windows lira leur contenu au lieu de l'ignorer). Ils peuvent donc se placer n'importe où dans l'en-tête (head) comme dans le corps (body) de page, et peuvent contenir n'importe quel code HTML.

Pour une CSS en commentaires conditionnels, c'est effectivement dans head. La placer après la CSS générique est une bonne habitude à prendre, dans la mesure où la CSS en commentaires conditionnel va modifier des règles de la CSS générique, par simple effet de cascade.

En revanche, pour atteindre IE6.0, et pas seulement IE5.x, ce n'est pas if lt IE 6, mais if lt[b]e IE 6[/i] Smiley cligne

(le premier signifie "version strictement inférieure à 6" et le second signifie "version inférieure ou égale à 6")
Modifié par Laurent Denis (08 Sep 2005 - 12:57)
Merci pour ta réponse.

J'avais bien compris le fonctionnement, en revanche je ne comprends pas pourquoi ça ne marche pas...

c'est bien <!--[if lt IE 6]> que j'ai souhaité mettre et non <!--[if lte IE 6]>. Les marges ne sont pas rendues de la même façon dans IE6 que dans IE 5.5 et IE 5.0. Je pensais qu'en mettant <!--[if lt IE 6]> ça me permettrait de modifier les marges dans les versions 5 d'IE seulement.

A la lecture de ton explication qui vient renforcer ce que j'avais lu auparavant, j'avoue que je sèche...

Pour mémoire :

Code dans la page CSS
#contenu img {
float: left;
margin: 0 0 0 20px;
padding-bottom: 15px; }


Code dans la page HTML

<style type="text/css">
@import "css/layout.css";
<!-- [if lt IE 6] -->
#contenu img {
float: left;
margin: 0 0 15px 20px; 
}
<!-- [endif]  -->
</style>
Et comme ça ?


<style type="text/css">
@import "css/layout.css";
</style>

<!-- [if lt IE 6] -->
<style type="text/css">
#contenu img {
float: left;
margin: 0 0 15px 20px;
}
</style>
<!-- endif -->


De plus je crois qu'il y a des tirets en trop :

Ceux à la fin de la balise d'ouverture du commentaire conditionnel.
Et ceux au début de la balise de fermeture.
Apparemment le commentaire :
<!-- [if lte IE 5] -->
me donne le résultat attendu.

Ce qui n'explique pas pourquoi
<!--[if lt IE 6]>
ne fonctionne pas...