la técncia que yo uso:
Código HTML:
<div id="container">
<div id="top"></div>
<p class="ultimo"></p>
</div>
<div id="footer"></div>
Código:
html, body{height:100%}
#container{min-height:100%}
#top{height:100px;}
#footer{height:40px;margin-top:-40px}
p.ultimo{padding-bottom:40px;}
- el TOP dentro del CONTAINER (equivalente a tu "Medio") y el FOOTER fuera
- darle min-height:100% al CONTAINER (no funciona en ie6 pero hay formas de hacerlo andar)
- posicionar al FOOTER con margin-top negativo igual a su altura
- al último elelemto del CONTAINER darle un margin-bottom igual a al altura del FOOTER para que no quede contenido debao del pie
creo que eso es todo