Dévoilement de l'écart : pourquoi Margin-Top fonctionne avec Inline-Block mais pas Inline
Dans le domaine du style CSS, l'interaction entre les propriétés d'affichage et le comportement des marges peuvent parfois conduire à des scénarios déroutants. Un tel exemple est le cas curieux de margin-top fonctionnant avec inline-block mais pas inline.
Considérez l'extrait CSS suivant :
h1 { display: inline; margin-top: 25px; }
Lorsqu'il est appliqué au
Pour résoudre cette énigme, nous plongeons dans les profondeurs de la spécification CSS2. Selon la section 9.2.4, les éléments de bloc en ligne génèrent un conteneur de blocs de niveau en ligne, traitant essentiellement l'élément comme une boîte atomique de niveau en ligne. En revanche, les éléments en ligne génèrent une ou plusieurs boîtes en ligne, comme indiqué dans la section 9.2.4.
La section 9.4.2 de la spécification CSS2 précise que les éléments en ligne ne respectent que les marges horizontales, sans tenir compte des marges verticales. Les éléments au niveau bloc, en revanche, respectent les marges horizontales et verticales.
Par conséquent, l'écart entre inline et inline-block provient du comportement différent des éléments inline et block. Les éléments en ligne, comme inline, ne respectent que les marges horizontales car ils sont disposés horizontalement les uns après les autres. Les éléments de bloc en ligne, en revanche, sont effectivement traités comme des blocs, présentant le comportement familier des éléments de niveau bloc, y compris la capacité de respecter les marges verticales comme margin-top.
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!