Я уже давно не размечаю сайты. Итак, теперь у нас есть HTML5 и множество новых функций в CSS. У меня есть общий макет сайта с фиксированным размером верхнего и нижнего колонтитула. И, конечно, основное содержание области между ними. По умолчанию страница должна занимать 100% высоты окна (то есть область содержимого расширяется). А если контент длинный, появляется полоса вертикальной прокрутки страницы и все как обычно.
Обычно я делал это примерно так:
<body>
<table id="main" ...>
<tr>
<td id="header-and-content">
<div id="header">contains logo, nav and has fixed height</div>
<div id="content">actual content</div>
</td>
</tr>
<tr>
<td id="footer">
fixed size footer
</td>
</tr>
</table>
</body>
И сопровождающие css:
html, body { height:100% }
table#main { height:100% }
td#footer { height:123px }
Итак, оно устарело. Вы, кто в курсе новых методов разметки, как это делается к 2011 году?
UPD Люди, проблема не в семантической разметке или использовании div. Я знаю, что это значит. Проблема сейчас в - как мне сказать, чтобы нижний колонтитул оставался внизу, даже если содержимое пустое или короткое. Когда содержание достаточно длинное, нижний колонтитул просто идет вниз, как это было бы в другом случае. Абсолютное и фиксированное не является решением (по крайней мере, в его базовой форме)
НЕКОТОРЫЕ ОБЩЕЕ ОБНОВЛЕНИЕ
- Я пробовал метод с использованием display: table и display: table-row, и он работает: мало контента , больше контента
- Метод Сделать нижний колонтитул в нижней части страницы по совету Андрея. Работает также: немного контента , больше контента
Некоторое разочарование, хотя я чувствую: первый метод - это только те таблицы, но без тега table
. Второй действительно старый, я избегал его использовать, потому что он напоминает хак. Боже мой, ничего нового:)