установка переполнения на скрытый - не всегда идеальное решение, так как если у вас есть контент, который больше контейнера, он не будет отображаться.
путем добавления очищающего элемента в нижней части контейнера, вы должны увидеть, что плавающие элементы помещаются внутри родительского элемента.
<body>
<div id="box" style="border: 2px solid green;">
<div id="image" style="height: 200px; width: 200px; background: red; float: left;"></div>
<div id="text" style="background: yellow;">This is some text</div>
<div style="clear: left; height: 0; margin: 0; padding: 0"></div>
</div>
</body>
Очевидно, вы захотите создать универсальный класс для этого и установить CSS во внешней таблице стилей - но принцип работает.