You can only float block level elements.
Floating an element shrinkwraps it around its contents. They float up like balloons until they hit the ceiling of the block above them.
Floating the containing or parent block shrinkwraps it around its contents or child elements.
Whether those children are floated...
...or static.
Floats will always go as far to the top (left or right) as they can..
Resize this window and watch the span.
Use floats to position elements in corners.
Use clears and widths on blocks to pen floats so they don't get away from you.
But only clear what you need or you can get gaps: