Why are my div margins overlapping and how can I fix it?

Atif picture Atif · Oct 11, 2010 · Viewed 81k times · Source

I don't understand why the margins of these divs are overlapping.

picture

Answer

MatTheCat picture MatTheCat · Oct 11, 2010

I think it's a collapsed margin. Only the largest margin between the bottom of the first element and the top of the second is taken into account.

It is quite normal to don't have too much space between two paragraphs eg.

You cannot avoid that with two adjacent elements so you have to enlarge or reduce the larger margin.

EDIT: cf. W3C

Two margins are adjoining if and only if:

  • both belong to in-flow block-level boxes that participate in the same block formatting context
  • no line boxes, no clearance, no padding and no border separate them
  • both belong to vertically-adjacent box edges

So there is no collapsing with float which takes the element out of the flow.