Confermo, devi usare proprio la proprietà clear :)
Il meccanismo è semplice: dopo i <div> affiancati con float serve un elemento con tale proprietà. Così quest'ultimo non potrà essere affiancato da altri elementi e verrà a trovarsi necessariamente alla fine dei precedenti. Conseguenza: il <div> parente si allungherà fino a includere l'elemento impostato con la proprietà clear. Il gioco è fatto.
Puoi impostarla su left (se hai usato solo "float: left" non c'è bisogno di "ripulire" alla sua destra), su right oppure su both (se hai usato sia "float: left" che "float: right").
Un codice xhtml di esempio:
codice:
<div id="contenitore">
<div id="uno"> </div>
<div id="due"> </div>
<div id="tre"> </div>
<br class="clear" />
</div>
E il relativo foglio di stile:
codice:
#contenitore { border: 2px solid blue }
#uno, #due, #tre { float: left }
.clear { clear: left } /* Adesso il bordo impostato a #contenitore includetutto quello che c'è
fino a questo elemento, anche se prima è stato usato un float left! */
Ciao ^^