У меня есть div, который отображает всю высоту экрана.Я хочу поместить туда три элемента: верхний, нижний и нижний колонтитулы, причем верхний и нижний колонтитулы торчат вверху и нижний колонтитул, а содержимое подгоняется между ними.Решения, которые я нашел для этого, требуют, чтобы я определил высоту нижнего колонтитула и / или верхнего колонтитула, а затем дал центру div поле, равное той высоте, которую я хочу оставить неопределенной (они должны растягиваться, чтобы соответствоватьсодержание).Есть ли способ сделать это без использования javascript?
Когда размер браузера изменяется, нижний колонтитул и верхний колонтитул должны оставаться неизменными, а центр должен уменьшаться.
<html>
<head>
<style>
.stretchedToMargin {
display: block;
position:absolute;
height:auto;
bottom:0;
top:0;
left:0;
right:0;
background-color: green;
}
</style>
</head>
<body>
<div class="stretchedToMargin">
<div>
Header (style="top:0") Indefinite height.
expands to fit content without scrolling.
</div>
<div>
Content
Fits between header and footer, using the pixels leftover
scrolling if needed
</div>
<div>Footer (style="bottom:0") Indefinite height.
expands to fit content without scrolling.
</div>
</div>
</body>
</html>
Использование таблицы (так каккажется, что это невозможно только с помощью CSS), поскольку следующее также не работает.Длинный текст выпадает из всего макета, полосы прокрутки не появляются ...
<div class="stretchedToMargin">
<table style="height:100%;">
<tr>
<td style="height:1px;">Header</td>
</tr>
<tr>
<td><div style="height:100%; overflow:auto;">...Long text...</div></td>
</tr>
<tr>
<td style="height:100px">Footer</td>
</tr>
</table>
</div>