その非常に単純な問題ですが、オンラインで適切な解決策を見つけることができないようです。最後の要素がページの下部に拡張された自然なフローの要素のリストが必要です。だから私が持っている場合
<div id="top" style="height:50px;"></div>
<div id="bottom" style="background:lightgrey;"></div>
bottom
の下部からページの下部まで拡張するには、要素top
が必要です。 htmlとcssのみを使用するソリューションは歓迎です。bottom
divの動的なサイズ変更を取得できる限り、コンテナdivなどを追加できます。
編集:bottom
のサイズを変更する場合はbottom
を調整するため、top
の値をハードコーディングしたくない
ここにすべてのいじる必要があるためのフィドルがあります: http://jsfiddle.net/8QnLA/
html, body {
height: 100%;
width: 100%;
}
body {
display: table;
margin: 0;
}
#top, #bottom {
width: 100%;
background: yellow;
display: table-row;
}
#top {
height: 50px;
}
#bottom {
background: lightgrey;
height: 100%;
}
html, body {
height: 100%;
width: 100%;
}
body {
display: table;
margin: 0;
}
#top, #bottom {
width: 100%;
background: yellow;
display: table-row;
}
#top {
height: 50px;
}
#bottom {
background: lightgrey;
height: 100%;
}
<div id="top" style="height:50px;"><span>A header</span></div>
<div id="bottom" style="background:lightgrey;"><span>The content area - extends to the bottom of the page</span></div>
#top {
height: 50px;
background: yellow;
}
#bottom {
background: lightgrey;
min-height: calc(100vh - 50px);
}
body {
margin: 0;
}
#top {
height: 50px;
background: yellow;
}
#bottom {
background: lightgrey;
min-height: calc(100vh - 50px);
}
Where `min-height: calc(100vh - 50px);` means:
'Let the height of the content div be **at least** 100% of the viewport height minus the 50px height of the header.'
<div id="top" style="height:50px;"><span>A header</span></div>
<div id="bottom" style="background:lightgrey;"><span>The content area - extends to the bottom of the page</span></div>
body {
margin: 0;
min-height: 100vh;
}
body {
display: flex;
flex-direction: column;
}
#top {
height: 50px;
background: yellow;
}
#bottom {
background: lightgrey;
flex: 1;
}
body {
margin: 0;
min-height: 100vh;
}
body {
display: flex;
flex-direction: column;
}
#top {
height: 50px;
background: yellow;
}
#bottom {
background: lightgrey;
flex: 1;
}
<div id="top" style="height:50px;"><span>A header</span></div>
<div id="bottom" style="background:lightgrey;"><span>The content area - extends to the bottom of the page</span></div>
html, body
の高さを100%
に設定します。次に、最後の<div>
の高さを100%
に設定すると、ウィンドウと同じ高さになります。おそらくスクロールしたくないので、overflow: hidden
にもhtml, body
を設定できます。