Это должно работать:
.header { width: 100%; }
.navdiv { width: 250px; float: left; height: 400px; background-color: #F00; }
.mainarea { overflow: hidden; position: relative; border: solid 1px #000; }
.mainarea table { width: 100%; border: solid #F00 1px; }
/** hacks for IE6 **/
* html .mainarea { margin-left: 260px; }
* html .mainarea table { float: right; clear: none; }
Объяснение:
Я использую стандартный трюк с двумя столбцами overflow: hidden
, чтобы заставить основной контентоставайтесь в своей собственной колонке (в отличие от переноса под навигацией).position: relative
для основного содержимого - установить его в качестве родительского смещения таблицы, поэтому мы можем использовать width: 100%
для таблицы, чтобы увеличить ширину основной области.
Высота навигации,цвет фона и границы приведены только в демонстрационных целях.
На хаки:
Ни один другой (современный) браузер не требует margin-left: 260px
, так как он покрытoverflow: hidden
(заставляя его в две колонки).
Тем не менее, в этот момент, кажется, таблица очищается до основания навигационной панели (опять же, только в IE6).Чтобы решить эту проблему, удалите все значения по умолчанию (не уверен, что это необходимо) и переместите их вправо, чтобы они не учитывали размер nav.