CSS : IE 6 gets it right
Cette page est directement issue d'un import depuis un autre système de gestion de site web (SPIP). Elle n'a pas été vérifiée et peut vous paraître un peu moche.
Je la corrige dès que j'ai 5 minuites :-)
IE 6 corrige son bug concernant la largeur des boites définies avec les CSS.
<h1>CSS Enhancements in Internet Explorer 6</h1>
A la lecture de cette page : CSS Enhancements in Internet Explorer 6 on apprend qu'IE 6 a enfin corrigé son méchant bug de l'implémentation de la largeur et hauteur des boites définies en utilisant l'attribut width et height des CSS.<br />
Mais pour cela, il faut activer le <strong>standards-compliant mode</strong>.
<h1>Le bug : description rapide</h1>
Le bug était simple : les paddings et borders étaient compris dans le calcul de la taille (width ou height) d'une boite par IE. Le résultat est qu'une boite sous IE apparaissait plus petite qu'elle aurait du lorsque vous en aviez définit la taille avec width ou height.
<h1>Le standards-compliant mode</h1>
IE 6 possède maintenant un mode <em>strict</em> qui corrige ce bug. Il faut par contre activer le standards-compliant mode.
Comment ?<br />
En fonction de la DTD que vous spécifiez en début de vos pages, le standards-compliant mode sera activé. (voir le tableau de l'article dont le lien est donné tout au début de cette page).
Si vous ne voulez pas vous fatiguer à lire l'article, mettre cette DTD :
<code>
<!DOCTYPE HTML PUBLIC "-W3CDTD HTML 4.0 TransitionalEN"
"http://www.w3.org/TR/html4/loose.dtd">
</code>
est suffisant pour activer le standards-compliant mode.
<h1>Conclusion théorique</h1>
Finit de s'embetter avec le IE-CSS-box-model-hack.
<h1>Conclusion pratique</h1>
Sauf qu'en théorie, le standards-compliant mode devrait marcher avec cette DTD (celle de ces documents) et ... en fait, non :-(
<code>
<!DOCTYPE html
PUBLIC "-W3CDTD XHTML 1.0 TransitionalEN"
"DTD/xhtml1-transitional.dtd">
</code>
Si quelqu'un à une DTD XHTML qui fait qu'IE 6 passe en standards-compliant mode, je suis preneur.
Ajout du 13 avril : Il n'y en a pas. J'ai été ravi de trouver un document d'un type qui s'est pris la tete comme moi sur la question, et qui a trouvé que malgrès ce que prétendent les docs d'Internet Explorer 6 (le lien plus haut) il est impossible de passer en Standard-Compliant mode si votre document est XHTML. Même le Service Pack 1 ne corrige pas cette merde :
- Explorer Compliance/Compatibility Mode Tests With Regard to XHTML Documents->ÿ445ÿ
- [Doctype, Measurements, and Standards-Compliant Mode->http://dhtmlkitchen.com/js/measurements/index.jsp] : où l'on apprend qu'il suffit de ne pas mettre de tag de déclaration XML (<code><?xml ...<?</code>) pour que le standard-compliant mode soit activé dans IE (malgrès les specs du W3C qui demandent fortement à ce que la déclaration XML soit ajoutée à tout doc XML).
- The Opera 7 DOCTYPE Switches : où l'on apprend qu'Opera 7, pour être plus compatible avec les pages développées par les gens qui ne vérifient leurs pages qu'avec IE, sont allé jusqu'à développer un Quirks Mode, qui est en gros un mode qui émule tous les bugs d'IE (si c'est pas triste de devoir en arriver là ).
- Things to Take into Account When Moving to Standards-Compliant HTML and CSS Authoring : une petite liste des prises de tête qui attendent les personnes voulant passer au XHTML + CSS standards.
Ecrire votre commentaire
Vous devez vous connecter pour pouvoir ajouter un commentaire.