Entonces tu problema no era estructurar esos elementos sino el limpiar los flotados para que la capa contenedora creciera.
Hay dos soluciones más limpias que esa, sin añadir elementos al HTML.
Una sería añadir overflow a la capa contenedora:
Y la otra es, hacer eso mismo pero usando un pseudo-elemento:
Código CSS:
Ver originaldiv.blanco::after {
visibility: hidden;
display: block;
clear: both;
height: 0;
content: ' ';
font-size: 0;
}