Per far sì che il contenitore generale si adatti al contenuto devi dichiarare un clear, come dice Myaku, settato a both.

Quindi .clearfloat{clear:both;}

Io di solito lo piazzo sotto l'header e prima del Footer.