Je dois m'excuser, j'ai mal compris votre question. Lorsqu'elles ne sont pas séparées par une bordure ou un remplissage, les marges des parents et des enfants s'effondrent, et seule la plus grande marge prévaut à l'extérieur de la frontière du parent.
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing
Parent et premier/dernier enfant: S'il n'y a pas de frontière, le rembourrage, une partie en ligne , le contexte de mise en forme de bloc créé, ou l'autorisation de séparer la marge supérieure d'un bloc de le bord supérieur de son premier bloc enfant; ou aucune bordure, marge, contenu en ligne, hauteur, hauteur minimale ou hauteur maximale pour séparer le bas de la marge d'un bloc du bas de son dernier enfant, puis ces marges s'effondrent. La marge repliée finit en dehors du parent.
Ces règles sont applicables même aux marges sont nulles, de sorte que la marge d'un premier/dernier enfant se termine à l'extérieur de son parent (selon les règles ci-dessus) si la marge du parent ou non est nul.
Si la marge du parent est 0, la marge réduite est réduite à la marge parente suivante. Regardez cet exemple:
L'exemple montre ceci:
<html>
<head>
<body>
<main>
<h1>Foo</h1>
<p>Bar</p>
</main>
</body>
</html>
Dans les trois premiers « foos » principale a une marge supérieure de 8px, croula avec la marge par défaut de h1 et la marge de résultat va de la frontière html à la frontière principale.
Dans les deux prochains "foos" la marge de main est 0, donc la marge s'effondre avec le corps et sort de la bordure html.
C'est ce qui se passe en chrome, il applique un agent par défaut style utilisateur:
-webkit-margin-before: 0.67em;
-webkit-margin-after: 0.67em;
qui s'effondre avec la marge de corps et va à l'extérieur de la frontière html. Firefox semble se comporter différemment, si vous supprimez la balise principale, la bordure de h1 est en dehors du html comme dans Chrome, mais avec le parent principal (mais avec une marge de 0) cela n'arrive pas. J'ai regardé les styles du navigateur, mais je ne trouve rien qui explique, je peux seulement dire que les navigateurs se comportent différemment. Désolé si mon explication n'est pas la meilleure, c'est un problème compliqué, et merci de l'avoir apporté pour cela était amusant d'enquêter.
Lecture sur les marges s'effondrent:
https://www.w3.org/TR/CSS21/box.html#collapsing-margins