Your body needs height. Because of the floating elements it has not. So indeed if your footer clears the floating, your body will have the same height as its content.
If you need the footer to always be at the bottom of the page, try something like sticky footer.