Начнем с того, что если у вас есть блок, внутрь которого вложены какие-то другие блоки, это дочерние блоки ничего наследовать (в том смысле, какой в это вкладывается в CSS) не должны. По умолчанию у всех этих блоков фон - transparent. (Вы это можете увидеть, если посмотрите на свою страницу отладчиком, например - Firebug, включив опцию отображения итогового стиля для элементов и не забыв включить показ свойств по умолчанию.
Далее, у вас в блоке nav лежат блоки с display:inline без всякого float, а вот в блоке div#raw все только float:left, float:right. Так что все эти блоки, которые div#raw div, они на самом деле выходят за границы самого div#raw по высоте, а вот сам div#raw имеет из-за float дочерних элементов нулевую высоту. Так что div.white_bg, в который вложены nav и div#raw тоже имеет высоту, равную всего лишь высоте nav.
На вопрос "в чем ошибка" могу дать ответ не очень приятный, но правдивый: во всем. Посидите с отладчиком, посмотрите, как на других сайтах структура делается, почитайте про использование float и display.