Hola
bidok, porque cuando flotas elementos debes
siempre poner los elementos flotados
dentro de un contenedor, y
limpiar los float como se dice.
Al dar overflow:hidden; al padre de las cajas flotadas esta pasa a tomar el alto dependiendo de la altura de sus hijos, (de no dárselo height pasa a valer 0) concretamente del más alto de ellos. Y con esto resuelves tu problema.
Saludos.