Nel tuo caso va bene il codice che ti ho dato!

Dalle tu considerazioni penso tu non abbia ben capito l'uso di float e clear.

float
Con questa proprietà è possibile rimuovere un elemento dal normale flusso del docuemnto e spostarlo su uno dei lati (destro o sinistro) del suo elemento contenitore. Il contenuto che circonda l'elemento scorrerà intorno ad esso sul lato opposto rispetto a quello indicato come valore di float. La proprietà non è ereditata.
[list=1]
Valori[*]left. L'elemento viene spostato sul lato sinistro del box contenitore, il contenuto scorre a destra. [*]right. L'elemento viene spostato sul lato destro, il contenuto scorre a sinistra. [*]none. Valore iniziale e di default in mancanza di una dichiarazione esplicita. L'elemento mantiene la sua posizione normale.[/list=1]
clear
La proprietà clear serve a impedire che al fianco di un elemento compaiano altri elementi con il float. Si applica solo agli elementi blocco e non è ereditata.

L'origine di tale proprietà è questa: visto che il float sposta un elemento dal flusso normale del docuemento, è possibile che esso venga a trovarsi in posizioni non desiderate, magari al fianco di altri elementi che vogliamo invece tenere separati. clear risolve questo problema.
Valori
[list=1][*]none. Gli elementi con float possono stare a destra e sinistra dell'elemento. [*]left. Si impedisce il posizionamento a sinistra. [*]right. Si impedisce il posizionamento a destra. [*]both. Si impedisce il posizionamento su entrambi i lati. [/list=1]

ESEMPI