Strict DTDのbody要素の子要素になれるのはブロックレベル要素のみ、 以前書きましたが、それは何故でしょう。
ブロックレベル要素はひとつのまとまった単位としてあらわされ、その前後は改行され、一定のマージン、パディングを付与します。
Strict DTDのbody要素の子要素になれるのはブロックレベル要素のみ、それはbodyに文章を記述する際、自ずと一定のマージン、パディングを取り、見やすく配慮する。そういった意味ではないでしょうか?
新聞紙を観てみて下さい。
各項目が囲みを作り、見出しがあり、本文がありませんか?
ブロックレベル要素はそういった見やすさと共に、どのグループなのかという判りやすさを示すものだと思うのです。
読み上げソフトではその場所でブレスがはいっているでしょう。
そして、これらブロックレベル要素にidを付与し、インデックスをまとめたブロックレベル要素を配置すれば、どんなに巨大なページであっても判りやすくなるのではないかと思うのですが、如何でしょうか?
Strict DTDで一番確実な設定法としてはbodyの中にdiv(囲み枠)で大括りし、h*(見出し)、p(段落)等を配置するのがいいのではと思われます。
<body>
<div>
</div>
</body>
そして、divでマージン、パディングを設定すべきでしょうね。
参考までにテーブル、フレーム以外の要素ではマージン、パディングを設定する属性は存在しません。
スタイルシートで設定すべきです。
CSSの場合、これらを設定する領域をボックスといい、外側から、マージン(margin)、ボーダー(border)、パディング(padding)があり、内容部分はその中にはいります。
IE Netscape Mozillaなどはマージン(margin)が設定され、パディング(padding)が0に設定されていますが、Opera6ではマージン(margin)が0に設定され、
パディング(padding)が設定されています。
body直下の余白設定での注意点でしょう。
また、ボックス領域の幅(width)、高さ(hight)の解釈では一般的には内容領域のみのところが、Win IEの一部でボーダーまでを含めた幅広な設定になっているようで、ここら辺も注意が必要。
うっかり、width : 100% としてプリント時、ページ右端が欠けて印刷される場合がありますので、注意した方がいいでしょう。
個別タグについては改めて解説します。