MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Цей переклад в процесі.

The top and bottom margins of blocks are sometimes combined (collapsed) into a single margin whose size is the largest of the individual margins (or just one of them, if they are equal), a behavior known as margin collapsing. Note that the margins of floating and absolutely positioned elements never collapse.

Margin collapsing occurs in three basic cases:

Безпосередні (прилеглі) сусіди
The margins of adjacent siblings are collapsed (except when the latter sibling needs to be cleared past floats).
Батько та перший/останній дочірній елемент
If there is no border, padding, inline part, block_formatting_context created, or clearance to separate the margin-top of a block from the margin-top of its first child block; or no border, padding, inline content, height, min-height, or max-height to separate the margin-bottom of a block from the margin-bottom of its last child, then those margins collapse. The collapsed margin ends up outside the parent.
Порожні блоки
If there is no border, padding, inline content, height, or min-height to separate a block's margin-top from its margin-bottom, then its top and bottom margins collapse.

More complex margin collapsing (of more than two margins) occurs when these cases are combined.

These rules apply even to margins that are zero, so the margin of a first/last child ends up outside its parent (according to the rules above) whether or not the parent's margin is zero.

When negative margins are involved, the size of the collapsed margin is the sum of the largest positive margin and the smallest (most negative) negative margin.

When all margins are negative, the size of the collapsed margin is the smallest (most negative) margin. This applies to both adjacent elements and nested elements.

Приклади

HTML

<p>The bottom margin of this paragraph is collapsed...</p>
<p>...with the top margin of this paragraph, yielding a margin of <code>1.2rem</code> in between.</p>

<div>This parent element contains two paragraphs!
  <p>This paragraph has a <code>.4rem</code> margin between it and the text above.</p>
  <p>My bottom margin collapses with my parent, yielding a bottom margin of <code>2rem</code>.</p>
</div>

<p>Blah blah blah.</p>

CSS

div {
  margin: 2rem 0;
  background: lavender;
}

p {
  margin: .4rem 0 1.2rem 0;
  background: yellow;
}

Результат

Специфікації

Специфікація Статус Коментар
CSS Level 2 (Revision 1)
The definition of 'margin collapsing' in that specification.
Recommendation Первинне визначення

Див. також

Мітки документа й учасники

 Зробили внесок у цю сторінку: asmforce
 Востаннє оновлена: asmforce,