Я работаю над веб-приложением, в котором я хочу, чтобы контент занимал всю высоту экрана.
Страница имеет заголовок, который содержит логотип и информацию об учетной записи. Это может быть произвольная высота. Я хочу, чтобы 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>
Вся высота страницы заполнена, и прокрутка не требуется.
Для чего-либо внутри содержимого div, установка top: 0;
поместит его прямо под заголовком. Иногда содержимое будет реальной таблицей с высотой, установленной на 100%. Помещение header
внутрь content
не позволит этому работать.
Есть ли способ добиться того же эффекта без использования table
?
Обновить:
Элементы внутри контента также div
будут иметь высоту, установленную в процентах. Так что что-то на 100% внутри div
заполнит его до дна. Как будет два элемента на 50%.
Обновление 2:
Например, если заголовок занимает 20% высоты экрана, таблица, указанная в 50%, #content
будет занимать 40% пространства экрана. Пока единственное, что работает, - это завернуть все в таблицу.
display:table
и связанные свойства, см. Этот ответ на очень похожий вопрос.