Maison >interface Web >tutoriel CSS >Pourquoi \'margin: 0 auto;\' ne centre-t-il pas les éléments d'entrée en mode standard IE8 ?

Pourquoi \'margin: 0 auto;\' ne centre-t-il pas les éléments d'entrée en mode standard IE8 ?

DDD
DDDoriginal
2024-11-29 16:46:10586parcourir

Why Doesn't

IE8 Écart avec "marge : 0 auto ;" pour l'élément d'entrée

Malgré son utilisation généralisée pour le centrage des éléments, la « marge : 0 auto ; » la propriété semble présenter un comportement incohérent dans IE8. Dans un récent 测试, un élément d'entrée enfermé dans un élément de bloc n'a pas réussi à se centrer dans le mode standard d'IE8.

Le code HTML en question est le suivant :

<div>
<p><strong>Navigateur Compatibilité</strong></p>
<p>Le problème de centrage incorrect des éléments en mode standard IE8 a été observé dans de nombreux navigateurs, dont :</p>
<ul>
<li>Firefox 3</li>
<li>Opera</li>
<li>Safari</li>
<li>Chrome</li>
<li>Mode de compatibilité IE7</li>
</ul>
<p>Cependant, il n'est pas présent dans la norme IE8 mode.</p>
<p><strong>Problème sous-jacent</strong></p>
<p>Le coupable derrière ce comportement est le fait que les éléments d'entrée ne sont pas intrinsèquement des éléments de niveau bloc. Lorsque "display: block" est appliqué à une entrée, il la transforme effectivement en un élément de niveau bloc, rendant la "margin: 0 auto;" propriété applicable.</p>
<p><strong>Solution</strong></p>
<p>Pour résoudre ce problème, les développeurs peuvent soit définir explicitement une largeur pour l'élément d'entrée, soit le contenir dans un élément de niveau bloc et appliquer " text-align: center" au conteneur.</p>
<p><strong>Références de spécification</strong></p>
<p>Selon le CSS Spécification 2.1 :</p>
<ul>
<li>"display: block" sur un élément non-bloc ne spécifie pas de largeur explicite.</li>
<li>"margin: 0 auto;" sur un élément de niveau bloc le centre horizontalement au sein de son élément parent.</li>
</ul>
<p>Par conséquent, le comportement des navigateurs qui ne centrent pas l'élément d'entrée avec "margin: 0 auto;" est incorrect selon les spécifications.</p>
<p><strong>Remarque :</strong> L'ajout d'une déclaration DOCTYPE peut résoudre le problème dans certains cas. Pensez à utiliser ce qui suit :</p>
<pre class="brush:php;toolbar:false">

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Comment puis-je charger dynamiquement du CSS en ligne ou externe avec jQuery ?Article suivant:Comment puis-je charger dynamiquement du CSS en ligne ou externe avec jQuery ?

Articles Liés

Voir plus