Учитывая приведенную ниже структуру HTML, как мне заставить td.expand
заполнить оставшееся вертикальное пространство #outer
? Я пробовал разные решения (в том числе Flexbox), но у меня ничего не работало. К сожалению, я застрял с двумя таблицами, поэтому предположим, что структура HTML не может быть изменена. Кроме того, предположим, что #outer
находится внутри модального окна, размер которого может быть изменен, поэтому его высота равна динамическому c (то есть, когда пользователь изменяет размер модального окна, высота #outer
изменяется, а td.expand
должен постоянно заполнять вверх по вертикали так, чтобы верхний и нижний колонтитулы всегда были вверху и внизу #outer
соответственно.
#outer {
height: 400px; /* dynamic */
background: skyblue;
}
.fixed {
height: 20px;
}
header,
footer {
height: 50px;
border: 1px solid black;
}
<div id="outer">
<div id="container">
<header>Header</header>
<table class="outer-table">
<tr>
<td>
<div class="content">
<table class="inner-table">
<tr><td class="expand">This should fill up remaining vertical space.</td></tr>
</table>
</div>
</td>
</tr>
<tr class="fixed"><td>Fixed height</td></tr>
<tr class="fixed"><td>Fixed height</td></tr>
</table>
<footer>Footer (should be pushed to the bottom)</footer>
</div>
</div>
Результат должен выглядеть следующим образом, где td.expand
заполняет оставшееся пространство #outer
:
введите описание изображения здесь