When you use float without width, there remains some space in that row. To block this space you can use clear:both;
in next element.
Just to add to RichieHindle's answer, check out Floatutorial, which walks you through how CSS floating and clearing works.
Source: Stackoverflow.com