28221 sujets

CSS et mise en forme, CSS3

Salut à tous

Etant donné que IE6 respecte le modèle de boite standard et que les versions précédentes ne le font pas est ce que quelqu'un a une petite idée pour réussir à faire une discrimination entre IE et IE ?

parce que évidemment des codes du genre

body>div

là ça ne marche pas

merci
Ok je part d'un exemple

mettons que je souhaite faire ceci.

html
<div>contenu du div</div>

css

div {
width:75%;
margin-left:20%;
}


entre mozilla, opera etc et IE je peux m'arranger ainsi

css

/*pour IE*/
div {
width:93.5%;
margin-left:20%;
}

/*pour les autres*/
body>div {
width:75%;
}

le problème c'est que la valeur à mattre pour IE6 c'est width:75%;
et pour les versions antérieurs 93.5%

le problème de compatibilité se pose donc entre IE et lui même et je ne vois pas de solution pour contourner celà.
Modifié le 10 Nov 2004 - 15:34
Administrateur
Humm sauf erreur, margin n'influence pas le modèle de boite.

Et pour le reste, je préfère ne pas utiliser de hacks du tout et m'en tenir à ces principes :

Tuto a écrit :
Pour contourner ce problème, plusieurs solutions sont envisageables :

* Il faut éviter de donner un "width" à un élément qui possède des padding latéraux (gauche/droite) ou des bordures latérales. Préférer donner des margin externes à cet élément.
* Il faut éviter de donner un "height" à un élément qui possède des padding verticaux (haut/bas) ou des bordures verticales. Préférer donner des margin externes à cet élément.
Par exemple, votre div doit faire 15em de large et vous voulez lui attribuer un espace interne (padding-right) de 2em à droite. Ceci va poser des problèmes de modèle de boite. Evitez le padding et attribuez un margin-right au contenu de ce bloc (paragraphes, autres div, etc.)... ou alors gardez le padding, mais ne donnez pas de largeur au div conteneur (vous pouvez délimiter sa taille en le limitant par des marges) !
Pour information, si vous aviez besoin d'un padding-top ou bottom, cela n'aurait pas posé de problème de dimensions... sauf si vous aviez attribué une hauteur à votre bloc div.
* il est possible d'utiliser des hacks (bidouilles) pour feinter IE (voir liens ci-dessus).
s'agit il vraiment du modèle de boite je ne sais pas, quoiqu'il en soit la différence est très importante dans l'interprétation de la largeur exprimée en pourcentage d'un élément pourvu d'une marge.

mozilla, opera (navigateurs respectant les standards je pense) --> 75% de l'élément contenant
IE6 --> idem
IE (versions antérieures) --> 75% du contenant moins la marge.