Sorry but that's not the way to do it (I sound like punch & judy don't I )
then perhaps try using display: inline
Gambling Harry was exactly right. Floats will float as far and as high as they can unless there is content in the way. They will not float up over content.
Therefore content that needs to wrap around a float must follow the float.
So all that was needed in your example was to move the elements in your html around.
Quite simple really and obvious once you think about it