Justamente anoche hice este
fiddle para explicarle a alguien el funcionamiento de los floats y los errores comunes que sabemos cometer al no entender bien su funcionamiento.
Necesitas usar overflow:hidden; al contenedor que envuelve los divs que tienen float, para que ocupe todo el alto y envuelva el contenido correctamente.
Saludos