Вам нужно установить переполнение: скрытое в вашем содержащем div, и убедиться, что оно имеет хотя бы одно измерение, которое является текучим. По умолчанию элементы переполнения (т.е. плавающие элементы, все, что извлечено из нормального потока документов) «переполняют границы содержащих их блоков» (переполнение: видимое), не затрагивая их родительский контейнер. Когда вы устанавливаете переполнение на скрытый, вы указываете блочной модели увеличивать содержащий div в любых измерениях, для которых не установлен фиксированный размер, чтобы он полностью содержал свои элементы содержимого.
В зависимости от того, требуется ли прокручивать содержимое содержащего элемента div или нет, вы можете использовать overflow: auto или overflow: scroll. Автоматическая настройка отображает полосы прокрутки, если необходимо, прокрутка всегда будет отображать их. Любые браузеры, которые поддерживают переполнение CSS3, предоставляют дополнительные возможности, которые вы можете посмотреть на W3C.org.
Первое изменение, которое я внесу в ваш код, будет следующим:
#content-body
{
background-color:white;
position: relative;
overflow: hidden;
}
Альтернативный метод, предпочтительный в наши дни, можно найти по ссылке ниже. Я не использовал его сам, поэтому я не могу убедительно сказать, насколько совместим этот метод. Однако для современных браузеров он предпочтительнее исправления переполнения (Opera, FF 3.x, Safari, Chrome, IE8). Для более старых версий IE они в любом случае автоматически расширяют div, поэтому ваш набор.
http://www.positioniseverything.net/easyclearing.html