http://www.desarrolloweb.com/articulos/problema-float-maquetacion-css.html
El problema que sabrán muchos maquetadores es cuando tenermos uno o más elementos div con la propiedad float dentro de un div que no tiene esa propiedad.
El efecto que hace es que la capa contenedor no coge el tamañano conteniendo las dos capas de div.

En el artículo coloca como solución poner el tamaño fijo de la capa contendero y colocar overflow:hidden. El problema es que siempre tienes que colocar un tamaño más grande.
Otra opción y más recomendable es colocar un div más dentro del contenedor, la última con la con float:none y clear: both. Automáticamente alarga el div contenedor para colocar los dos div.