Here I posted a demo http://jsfiddle.net/LxYMv/1/.
As you can see gets margin-top:10px from the top div, and therefor
It meants that if the child starts exactly where the parent - that has no margin - starts then the childs margin will affect it. You can use the padding property instead to get the result you want like:
padding
body{ padding-top:10px; }