Я працюю над веб-додатком, де хочу, щоб вміст заповнив висоту всього екрана.
На сторінці є заголовок, який містить логотип, та інформацію облікового запису. Це може бути довільна висота. Я хочу, щоб розділовий вміст заповнив решту сторінки донизу.
У мене є заголовок 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>
Вся висота сторінки заповнена, і прокручування не потрібно.
Якщо все, що знаходиться в розділі вмісту, налаштування top: 0;
помістить його прямо під заголовком. Іноді вміст буде справжньою таблицею, його висота встановлена на 100%. Поміщення header
всередину content
не дозволить цьому працювати.
Чи є спосіб досягти такого ж ефекту без використання table
?
Оновлення:
Елементи всередині вмісту div
також матимуть висоту, встановлену у відсотках. Тож щось на 100% всередині div
заповіту заповнить його донизу. Як і два елементи на 50%.
Оновлення 2:
Наприклад, якщо заголовок займає 20% висоти екрана, таблиця, вказана на 50% всередині #content
, займає 40% площі екрана. Поки що загортання всієї речі в стіл - це єдине, що працює.
display:table
та пов’язані з цим властивості, див. Цю відповідь на дуже схоже запитання.