Maison >interface Web >tutoriel CSS >Comment les marges imbriquées s'effondrent-elles et quand évitent-elles de s'effondrer ?

Comment les marges imbriquées s'effondrent-elles et quand évitent-elles de s'effondrer ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-01 07:23:02599parcourir

How Do Nested Margins Collapse and When Do They Avoid Collapsing?

Comprendre l'effondrement de la marge verticale imbriquée

De nombreux développeurs ont du mal avec le concept d'effondrement de la marge verticale dans les éléments imbriqués. Simplifions ce concept pour les débutants.

Imaginez deux divs imbriqués :

<div style="margin-top:10px">
<div style="margin-top:20px">
A
</div>
</div> 

Au départ, la marge de 20 px du div interne est prioritaire. Il y a cependant deux règles essentielles à retenir :

1. Réduire au toucher :
Si les marges des éléments adjacents se touchent, elles s'effondrent.

2. Nesting Snuggle :
Si seulement une marge sépare les éléments imbriqués, l'élément intérieur se « blottira » contre l'élément extérieur.

Application de ces règles à notre exemple :

  • Les marges des divs imbriqués se touchent, déclenchant une marge effondrement.
  • Le div interne se blottit contre le bord supérieur du div externe, malgré une marge plus grande.

Ainsi, le bloc global applique le maximum des marges de réduction (20 px) à la division entière.

Exceptions à la Réduire :

Cependant, le comportement de réduction de la marge change si :

  • Il y a une bordure ou un remplissage entre les éléments.
  • L'élément intérieur n'est pas vraiment imbriqué (par exemple, il est flottant ou positionné de manière absolue).

Exemple de Non Réduire :

L'ajout d'un espace blanc (ou d'une bordure) insécable sépare les marges, empêchant ainsi l'effondrement :

<div id="outer"> 
<div id="inner">
A
</div>
</div>

Dans ce cas, la marge intérieure du div (20 px) est appliqué à son propre espace, et la marge extérieure du div (10px) s'applique à la zone environnante.

En comprenant ces règles et exceptions, vous pouvez désormais contrôler efficacement l'espacement des éléments avec des marges imbriquées.

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