これが次の質問に対する私のjsFiddleです:http://jsfiddle.net/arelia/Rruxf/
体の一番上にあるヘッダーと、体の一番下にあるフッターが欲しいのですが。ヘッダーとフッターの間にコンテンツdiv(位置:相対)があり、divの周囲にマージンを設定すると、絶対位置のヘッダーとフッターがそのマージンの高さだけ上下の位置から移動します(これは私がdivの段落の上下にマージンを設定してみました)。フィドルでは、フッターが完全に配置されていても、フッターが下部にアタッチされていないことがわかります(静的に意図した結果が得られるため、先に進んでヘッダーを静的にしました)。ヘッダーとフッターを本体の上部と下部に配置し、中央のコンテンツでこれら2つの要素を移動させないようにするにはどうすればよいですか?位置:絶対要素がフローから移動した場合、なぜ何かがそれらの位置に影響を与えるのでしょうか?
私はこことグーグルで「CSSマージンは絶対に影響を与える」と他のいくつかのフレーズを検索してみましたが無駄です。開発者ツールでもう少し遊んでいるときに、これを発見しました。
- メトリックは、本文がhtml要素の高さから1つのマージン(フッターに影響を与えているマージン)を引いたものであることを示しています。したがって、本文はコンテンツdivの高さまで伸びている必要があります。これは、本文内のドキュメントフロー内に、その高さを定義するものが他にないためです。ただし、その高さは、マージンの後ではなく、コンテンツが終了する場所で終了します。マージンを含めるべきではありませんか?
- ボディの高さを100%にすると、フッターはビューポートの下部に配置され、スクロールしてもその場所に固定されたままになります。ビューポートの下部ではなく、ボディの下部にアタッチされないのはなぜですか?