css ではhtml要素はルート要素と言われ、この記事
で読んでいるように、その幅と高さはブラウザー ウィンドウ/フレームによって管理されます。
それで、それにマージンを適用することは意味がありますか?
それがルート要素である場合、より高いレベルの要素に含まれるべきではないため、そうではないと思います。
ただし、すべてのブラウザでhtml要素にマージンを追加できますが、説明はありますか?
phrogz.net の記事は単純に間違っています。それは実際にはまったく機能しません。html 要素はブロック レベルの要素であり、他のブロック レベルの要素とほとんど同じようにスタイルを設定できます。
あなたのページは、点 (0, 0) を原点とする (論理的に) 無限次元のキャンバスに描かれています。ブラウザーには、キャンバスの領域を表示するビューポートがあります。左上隅が (0, 0) で、ビューポートの高さと幅に等しい、初期包含ブロックと呼ばれる長方形のブロックが存在します。ルート要素の位置と寸法は、他のブロック要素の位置と寸法をそれを含む blockに対して相対的に指定できるのと同じように、最初の包含ブロックに対して相対的に指定できます。
余談ですが、CSS は HTML だけのものではありません。任意のソースの任意の名前空間で作成された DOM で動作します。特に、XML から作成された DOM で動作します。したがって、ルート要素は必ずしも要素ではありません<html>
。
html
必要に応じて要素にプロパティを設定できますが、それは一般的ではありません。通常、 にプロパティを設定する方が簡単body
です。
margin
に設定することに非論理的なことは何もありませんhtml
。マージンは要素のボックスの外側にあり、他の要素のボックスの内側に表示する必要はありません。
<HTML>
要素にマージンを追加しても意味がありません。<body>
およびその中にある要素にのみマージンを追加する必要があります。仕様についてはhttp://www.w3.org/TR/html401/struct/global.html#h-7.3も確認してください