私が現在取り組んでいるサイトには興味深いレイアウトがあり、CSS で正しく表示するのに苦労しています。ヘッダーとフッターはブラウザ ウィンドウの幅全体に広がり、コンテンツは幅 960 ピクセルのブロックに限定されますが、この 960 ピクセルのコンテンツ ブロック内には 2 つ目の「内部」フッターがあります。プライマリ フッターとこの「内部」フッターの両方をページの下部に配置する必要があります。以下は、機能単位に分解された Web サイトのマークアップです。
<html>
<body>
<header></header>
<section id="content">
MAIN CONTENT
<section id="internal-footer"></section>
</section>
<footer></footer>
</body>
</html>
CSS は次のとおりです。
html{margin:0;padding:0;min-height:100%;height:100%;}
body{margin:0;padding:0;min-height:100%;position:relative;}
header{width:100%;}
footer{width:100%;height:XXXpx;position:absolute;bottom:0;left:0;}
#content{width:960px;margin:0 auto;position:relative;padding-bottom:(XXX+YYY)px;}
#internal-footer{width:100%;height:YYYpx;position:absolute;bottom:0;left:0;padding-bottom:XXXpx;}
私が抱えている問題を示すために、ここで JSFiddle を作成しました (背景色と境界線を追加し、コンテンツの幅を狭めます)。
十分なコンテンツがある場合、すべてが意図したとおりに機能します。十分なコンテンツがない場合、#content
セクションが伸びず、内部フッターが持ち上げられるだけでなく、下部パディングのために高すぎます。もちろん、背が高すぎることは深刻な問題ではありません。なぜなら、私no-repeat
は背景画像を設定することができ、誰も賢くないからです。
#content
では、十分なコンテンツがない場合、スクロールバーを作成せずに、ページの下部まで強制的に伸ばすにはどうすればよいでしょうか?