This problem is not over yet: these boxes don’t collide, but they’re put after the float. That’s not what the spec wants:
If necessary, implementations should clear the said element by placing it below any preceding floats, but may place it adjacent to such floats if there is sufficient space.
Related to #2019.
This problem is not over yet: these boxes don’t collide, but they’re put after the float. That’s not what the spec wants: