Here you will find: -
Hide fields>
Adjacent siblings
The margins of adjacent siblings are collapsed (except when the later sibling needs to be cleared past floats). For example: <p>The bottom margin of this paragraph is collapsed...</p> <p>...with the top margin of this paragraph.<p>
Parent and first / last child
If there is no border, padding, inline content, or clearance to separate the margin-top of a block with 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 with the margin-bottom of its last child, then those margins collapse. The collapsed margin ends up outside the parent.
Empty blocks
If there is no border, padding, inline content, height, or min-height to separate a block margin-top from its margin-bottom, then its top and bottom margins collapse.
Look at this fiddle - it will not crash now after adding just a few spans. http://jsfiddle.net/aPaBy/
<div style="background-color: red; border-style:solid;"> <div id="test" class="border" style="background-color: yellow;"> <span>hi</span> <p>Inside <button>Test</button></p> <span>hi</span> </div> <p>Something</p> </div>
source share