#content {
min-height: 100%
}
(короткий и простой)
Редактировать + объяснение : приведенный выше код работает, если вы хотите убедиться, что длина содержимого div всегда больше, чем страница. Да, это всегда подталкивает нижний колонтитул к следующей видимой странице, но в этом нет ничего плохого, если вы принимаете это.
Для меня лучшее решение - это сделать прокрутку div:
html, body {
height: 100%; margin: 0; padding: 0; overflow: hidden;
}
#header {
position: absolute;
top: 0; height: 100px;
}
#footer {
position: absolute;
bottom: 0; height: 100px;
}
#content {
position: absolute;
top: 100px; bottom: 100px;
overflow: auto;
}
Таким образом, верхний и нижний колонтитулы всегда видны, а размер содержимого фиксирован (с полосой прокрутки, если содержимое переполняется). Не уверен, что это то решение, которое вы хотели, но это вариант.