Esses são truques antigos, mas pensei em compartilhar de qualquer maneira, caso isso possa beneficiar outras pessoas. Esta postagem fornece uma boa explicação sobre as desvantagens de cada abordagem: http://robertnyman.com/2007/04/12/how-to-clear-css-floats-without-extra-markup-different-techniques-explained/
Abordagem nº 1: use a propriedade css overflow
div.overflow{
overflow:hidden;
}
Abordagem 2: Use a propriedade css width
div.full-width{
width:100%;
}
Abordagem # 3: Use a propriedade css clear
div.clear-floats{
clear:both;
}
Abordagem # 4: use o css : após a pseudo-classe
div.clear-floats-after:after{
content:" ";
display:block;
height:0;
clear:both;
visibility:hidden;
}
Experimente aqui: http://jsfiddle.net/ivan_sim/evSEX/