В вашем документе есть плавающие элементы, которые, как следует из названия, означают, что они плавают над вашим «основным» элементом. Следовательно, оно не расширяется.
Легко исправить, вам просто нужно вставить «очистить».
Ваш HTML должен выглядеть следующим образом, обратите внимание на дополнительный div.
<div id="main">
<div id="left">left</div>
<div id="right">right</div>
<div class="clearme"></div>
</div>
И просто добавьте следующее к вашему CSS.
.clearme{clear:both}
Подробнее о свойствах clear и их использовании можно узнать здесь: http://www.tutorialhero.com/tutorial-64-css_clear_property.php