By default <p>
and <h2>
(among others) have margins and paddings associated with them. Trying adding the following to your CSS:
p, h2 {
margin: 0px;
padding: 0px;
}
Having padding won't affect the border and background of the elements, but depending on what you want, you might want to try removing them as well as I do here.
Edit: as Guffa pointed out in an answer below, the reason that the margins of the paragraph and heading are reaching outside their container DIVs is due to collapsing margins.