CSS Margin Collapsing

Margin collapsing refers to the formation of a margin when two vertical margins meet.

The height of the collapsed margin is equal to the larger of the two margins that collapse.

Margin collapsing

Margin collapsing (stacking) is a relatively simple concept. However, in practice, it can cause a lot of confusion when laying out web pages.

In simple terms, margin collapsing refers to the formation of a margin when two vertical margins meet. The height of the collapsed margin is equal to the larger of the two margins that collapse.

When an element appears above another element, the bottom margin of the first element will collapse with the top margin of the second element. See the following figure:

CSS Margin Collapsing Example 1

Try it yourself

When an element is contained within another element (assuming there are no padding or borders to separate the margins), their top and/or bottom margins will also collapse. See the following figure:

CSS Margin Collapsing Example 2

Try it yourself

Although it may seem a bit strange, margins can even collapse with themselves.

Suppose there is an empty element with margins but no border or padding. In this case, the top and bottom margins meet each other, and they will collapse:

CSS Margin Collapsing Example 3

If this margin encounters another element's margin, it will also collapse:

CSS Margin Collapsing Example 4

This is why a series of paragraph elements occupy such a small space, because all their margins collapse into a small margin.

Margin collapsing may seem a bit strange at first glance, but in fact, it makes sense. Take a typical text page composed of several paragraphs as an example. The space above the first paragraph is equal to the top margin of the paragraph. If there is no margin collapsing, the margins between all subsequent paragraphs will be the sum of the adjacent top and bottom margins. This means that the space between paragraphs will be twice the space at the top of the page. If margin collapsing occurs, the top and bottom margins between paragraphs will collapse together, making the distances consistent throughout.

The Practical Significance of CSS Margin Collapsing

Note:Only the vertical margins of block boxes in the normal document flow will cause margin collapsing. The margins between inline boxes, floating boxes, or absolutely positioned boxes will not collapse.

All CSS margin properties

Property Description
margin A shorthand property used to set the margin properties in a single declaration.
margin-bottom Set the bottom outer margin of the element.
margin-left Set the left outer margin of the element.
margin-right Set the right outer margin of the element.
margin-top Set the top outer margin of the element.