Hi,
inhaltslose Elemente sind immer doof.
Es gibt aber leider keine (mir bekannte) "richtige, beste" Lösung.
Eine die meistens recht gut funktioniert ist als clearfix bekannt:
.clearfix:before, .clearfix:after { content: ""; display: table; }
.clearfix:after { clear: both; }
.clearfix { zoom: 1; }
Funktioniert auf jeden Fall ab IE7+, ich glaube sogar IE6 (aber wen interessiert der noch …).
Eine andere Möglichkeit ist es dem Element dass die floats einschließen soll für overflow einen anderen Wert als visible zu geben (natürlich mit allen daraus folgenden Konsequenzen).
~dave