Вы не можете заставить фактический div расширяться, чтобы заполнить пробел без Javascript, но вы можете легко заставить его это делать. Переместите ваше правило цвет фона: # 0F9; из #middle в #container. Это даст вам требуемое поведение (оно заполнит пробел при минимальном содержании, а при большом количестве содержимого развернется вниз, подтолкнув нижний колонтитул).
Если вы хотите решение Javascript, будет работать следующий код. Просто поместите это в ваш HTML заголовок:
<script type="text/javascript">
window.onload = function() {
var mid = document.getElementById('middle');
var foot = document.getElementById('footer');
mid.style.height = ((foot.offsetTop+foot.clientHeight)-(mid.offsetTop+mid.clientHeight))+'px';
};
</script>