Il tuo problema è molto comune ed è causato dal collasso del contenitore dei float, che collassa essendo i float elementi che escono dal normale flusso e quindi svuotano il contenitore.
Copia questo codice nei tuoi css:
.clearfix:after { content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0; } .clearfix { display: inline-block; } html[xmlns] .clearfix { display: block; } * html .clearfix { height: 1%; }
Poi aggiungi la classe .clearfix al contenitore dei float.