CSSいじっててあれ~?と思って進まなくなった。
例えば
h2 {
 position:absolute;
}

p {
 margin-top: 200px;
}

<body>
 <h2>TESTHEAD
 <p>TEST TEST


</body>
の場合、

ページの頭に"TESTHEAD"が表示されて、ページトップから200px離れたところに"TEST TEST"と表示されるのを予想していたけど、なぜか両方が200px下に重なって表示されてしまった。
重なるのはh2がabsoluteだから構わないけど、なんでpのマージンに影響されるのか??

悩んだね。凄く。
そこで思い出したのが、包含ブロックの"height"が"auto"の場合は、コンテンツブロックと包含ブロックが同じ高さになるということ。
height省略だとautoになるよね?
つうことはbody要素がpと同じ高さなのか?と気がついた。
で、firebugで確認したらbodyの高さがpとほぼ同じ高さになってる・・・

そこでbodyにborder設定したら、bodyの高さが「pのマージン+pの高さ」とほぼ相成りました。
h2要素もページトップに無事表示された。
bodyも特別では無いのね。普通のブロックなのね・・・

bodyのバックに画像表示していて、ページ全面に問題なく表示されていたから余計に気付かなかった。
普通のブロック要素の場合はborderまでだよね?

時間がかかったけど、ひとつ勉強になりました。