So essentially does margin collapsing occur when you don't set any margin or padding or border to a given div element?
2 回答
No. When you have two adjacent vertical margins, the greater of the two is used and the other is ignored.
So, for instance, if you have two block-display elements, A, followed by B beneath it, and A has a bottom-margin of 3em, while B has a top-margin of 2em, then the distance between them will be 3em.
If you set a border or padding, this prevents the collapsing from occurring. In the above example, the distance between the two elements will then be 5em.
If you don't set any margins, then there won't be any margins to collapse. It has nothing whatsoever to do with the element type in use - it is applicable to all element types, not just <div>
elements.
Read the CSS 2.1 specification for more details.
"the expression collapsing margins means that adjoining margins (no non-empty content, padding or border areas or clearance separate them) of two or more boxes (which may be next to one another or nested) combine to form a single margin."