Если вы не установите высоту, поле будет растягиваться, чтобы вместить содержимое в нем. Если поле содержит только плавающие элементы, либо добавьте это непосредственно перед концом:
<div class="clear"></div>
С этим CSS:
.clear {
height: 0;
clear: both;
}
Или, более простое решение - добавить стиль overflow: auto
в поле. (Обратите внимание, что здесь будут отображаться полосы прокрутки, если вы указали явную высоту для указанного поля.)