コンテンツを画面全体の高さいっぱいにしたいWebアプリケーションに取り組んでいます。
このページには、ロゴを含むヘッダーとアカウント情報があります。これは任意の高さになる可能性があります。content divでページの残りの部分を一番下まで埋めてほしい。
ヘッダーdiv
とコンテンツがありdiv
ます。現時点では、次のようなレイアウトにテーブルを使用しています。
CSSとHTML
#page {
height: 100%; width: 100%
}
#tdcontent {
height: 100%;
}
#content {
overflow: auto; /* or overflow: hidden; */
}
<table id="page">
<tr>
<td id="tdheader">
<div id="header">...</div>
</td>
</tr>
<tr>
<td id="tdcontent">
<div id="content">...</div>
</td>
</tr>
</table>
ページの高さ全体が埋められ、スクロールは必要ありません。
content divの内部では、設定top: 0;
によりヘッダーのすぐ下に配置されます。コンテンツは、高さが100%に設定された実際のテーブルになる場合があります。header
内部content
に置くと、これは機能しません。
を使用せずに同じ効果を達成する方法はありtable
ますか?
更新:
コンテンツ内の要素のdiv
高さもパーセントに設定されます。したがって、内部に100%の何かがあると、div
それが底まで満たされます。2つの要素が50%になります。
アップデート2:
たとえば、ヘッダーが画面の高さの20%を占める場合、内部で50%に指定されたテーブル#content
は画面スペースの40%を占めます。これまでのところ、機能するのはテーブル全体をラップすることだけです。
display:table
と関連するプロパティを使用して、テーブルマークアップなしで、ほとんどのブラウザで目的のテーブルレイアウトを取得できます。非常に類似した質問に対するこの回答を参照してください。