I need two consecutive div
elements (with backgrounds) to be touching seamlessly, one below the other. However, this layout breaks when I put a child p
element into the bottom div
. The margins of the p
element force a blank gap between both div
elements. This is strange behavior, as I am expecting the margin of the p
to stay within the content and background area of the div
. It renders the same way on Firefox, Chrome and IE 8.
<div style="background: #ccccff">Top Div</div>
<div style="background: #ffcccc"><p>Bottom Div</p></div>
Here's what it looks like.
I could fix this by changing the margins to paddings for the p
element, but then I would also have to do this with header elements, list elements, and any other element I want to use at the start of a div
. That is not desirable.
Could someone enlighten me: what caveat of the box model am I missing? Is there an easy way to fix this, preferably by modifying the style of the div
?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…