float: left/right;
Desplaza a un elemento fuera del flujo del DOM (left o right)
Problema: el elemento que esté inmediatamente después en el DOM, ocupará el espacio que antes ocupaba el que ha sido desplazado (y su estilo se verá incluso alterado).
Para solventar eso, hay que hacer una "ñapa": crear un div vació que tenga la siguiente propiedad:
clear: both;
Provoca que se reajuste el flujo y el siguiente elemento no ocupe el espacio del elemento desplazado, sino que vaya a continuación.