None of the divs in this page have a margin top.
Practically all browsers will give the parent divs the margin-tops.
Text in a styled <p> tag with a margin-top : again, the div takes it.
Some text inside an unstyled <p> tag. Notice the margin-top of this div.
The same problem occurs if you use an <h1>. (like the header of this page)
Once the first element is created, subsequent elements do not affect the margin-top
The parent div takes it - the same thing occurs with a span.