Я працюю над веб-додатком, де хочу, щоб вміст заповнив висоту всього екрана.
На сторінці є заголовок, який містить логотип, та інформацію облікового запису. Це може бути довільна висота. Я хочу, щоб розділовий вміст заповнив решту сторінки донизу.
У мене є заголовок 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та пов’язані з цим властивості, див. Цю відповідь на дуже схоже запитання.