Чтобы колонки были "резиновыми", ширина раздела контента указана в процентах.

К колонке с контентом применено float: right;, чтобы она прижалась вправо, а колонка с меню поднялась на один уровень с ней.

Чтобы меню не залезло под контент, у него установлен margin-right: 80%;, соответствующий ширине блока с контентом.

Если высота контента окажется больше, чем меню, остаться внизу футеру поможет отмена обтекания clear: both;