Допустим, у меня есть родительский DIV. Внутри есть три дочерних DIV: верхний и нижний колонтитулы. Заголовок прикреплен к верхней части родительского элемента и заполняет его горизонтально. Нижний колонтитул прикреплен к нижней части родительского элемента и заполняет его также горизонтально. Содержимое должно заполнять все пространство между верхним и нижним колонтитулами.
Родитель должен иметь фиксированную ширину и высоту. Контент DIV должен заполнить все доступное пространство между верхним и нижним колонтитулом. Когда размер содержимого DIV содержимого превышает пространство между верхним и нижним колонтитулами, содержимое DIV должно отображать полосы прокрутки и разрешать соответствующую прокрутку , чтобы содержимое нижнего колонтитула никогда не закрывалось, а нижний колонтитул неясное содержание.
Теперь самое сложное: вы заранее не знаете ни высоту, ни нижний колонтитул (например, верхний и нижний колонтитулы заполняются динамически). Как можно позиционировать контент без использования JavaScript ?
Пример:
<div style="position : relative; width : 200px; height : 200px; background-color : #e0e0ff; overflow : hidden;">
<div style="background-color: #80ff80; position : absolute; left : 0; right : 0; top : 0;">
header
</div>
<div style="background-color: #8080ff; overflow : auto; position : absolute;">
content (how to position it?)
</div>
<div style="background-color: #ff8080; position : absolute; bottom : 0px; left :0; right : 0;">
footer
</div>
</div>
Для дальнейшего разъяснения этого события - целевой макет, которого я пытаюсь достичь, будет использоваться в бизнес-веб-приложении. Родительский DIV будет иметь фиксированный, но неизвестный размер (например, он будет точно соответствовать размеру окна просмотра браузера, изменяя размеры вместе с размером окна браузера пользователем) , Давайте назовем родительский DIV «экраном».
Заголовок будет содержать набор фильтрующих элементов управления (таких как текстовые поля, раскрывающиеся списки и кнопка «фильтр»), которые должны переноситься на следующую строку, если недостаточно горизонтального пространства (поэтому его высота может измениться в любое время для размещения строки ломки). Заголовок всегда должен быть виден и прикреплен к верхней части "экрана".
Нижний колонтитул будет содержать набор кнопок, как в диалоговом окне. Они также могут переноситься на следующую строку, если не хватает места по горизонтали. Нижний колонтитул должен быть прикреплен к нижней части «экрана», чтобы быть доступным и видимым в любое время.
Содержимое будет содержать «экранное» содержимое, например поля диалога и т. Д. Если полей слишком мало, остальная часть содержимого будет «пустой» (в этом случае нижний колонтитул не должен начинаться сразу после содержимого, но все же быть прикреплен к нижней части "экрана", который является фиксированным размером). Если полей слишком много, контент DIV предоставит полосы прокрутки для доступа к скрытым элементам управления (в этом случае контент DIV не должен выходить за нижний колонтитул, так как полоса прокрутки будет частично скрыта).
Надеюсь, это прояснит вопрос немного дальше, поскольку у меня слишком мало повторений, чтобы вводить комментарии к вашим ответам.