Трехколоночный макет на CSS с одинаковой высотой колонок

Представляю Вашему вниманию еще один 3-хколоночный макет страницы, реализованный с помощью XHTML и CSS.

Вот так он выглядит в миниатюре:

Особенности:

  • Оба сайдбара (левая и правая колонки) расположены с правой стороны. Такой тип страницы сейчас очень популярен, он используется на многих блогах.
  • HTML-код основной колонки расположен до начала кода обоих сайдбаров.
  • Все 3 колонки визуально растягиваются одинаково по вертикали при увеличении высоты одной из них. При этом не используются изображения.
  • Универсальность — макет можно использоваться как в случае с фиксированной шириной страницы, так и в случае с «резиновой» шириной. Для этого необходимо применить соответствующие CSS-свойства у 3-х блоков (в примере есть комментарии).
  • Кроссбраузерность проверена в основных популярных браузерах: Opera 9.23, FireFox 2.0, IE 6, IE 7, Safari/Win.
  • Валидный XHTML, валидный CSS.

HTML-код

Основа макета выглядит следующим образом:

<html>
<body>

<div id="wrapper">

 <div id="header"></div>

 <div id="container">

 <div id="sub-container">
 <div id="wrpr">

 <div id="content">
 <div id="text"></div>
 </div>

 <div id="left"></div>

 </div>
 </div>

 <div id="right"></div>

 </div>

 <div id="footer"></div>

</div>

</body>
</html>

В связи с тем, что в «резиновом» варианте в Internet Explorer 7 наблюдался небольшой отступ справа от правой колонки, пришлось задействовать дополнительный контейнер #wrpr. При фиксированной верстке данный контейнер не нужен.

CSS-код

Здесь публикую только код, отвечающий за расположение и визуализацию колонок. Все остальное в примере.

#wrapper {
 /* для фиксированной ширины */
 width: 900px;
 margin: 0 auto;

 /* для "резиновой" ширины
 width: expression((documentElement.clientWidth||document.body.clientWidth)<995?'1000px':'');
 min-width: 1000px; */
}
#container {
 width: 100%;
 background: #D5FFD5; /* фон основной колонки */
}
* html #container {height: 1%;}
#container:after {
 /* закрываем плавающие блоки */
 content: '.';
 display: block;
 clear: both;
 visibility: hidden;
 height: 0;
 line-height: 0;
}
#sub-container {
 float: left;
 border-right: 200px solid #BFF2FF; /* фон правого сайдбара */

 /* для фиксированной ширины */
 width: 700px;

 /* для "резиновой" ширины
 width: 100%;
 margin-left: -200px; */
}
#wrpr {
 /* для "резиновой" ширины
 margin-left: 200px; */
}
#content {
 width: 100%;
 float: left;
}
#text {
 border-right: 200px solid #FFF2BF; /* фон левого сайдбара */
}
#left {
 float: left;
 width: 200px;
 margin-left: -200px;
 background: #FFF2BF; /* фон левого сайдбара */
 position: relative;
}
#right {
 float: left;
 width: 200px;
 margin-left: -400px;
 background: #BFF2FF; /* фон правого сайдбара */
 border-left: 200px solid #FFF2BF; /* фон левого сайдбара */
}

Пример

Смотрим готовый пример страницы, сверстанной описанным методом.

Для удобства можно скачать архив с примером универсальной трехколоночной страницы на CSS.

* * *

Аренда оптического волокна.

Комментарии (27)
  1. 1
    @

    Васек
    Посмотите и здесь: http://trifler.ru/blog/comment_1223575204.html
    Даже, Димирию понравилось :)

  2. 2
    ThePlace

    В IE 5.5 криво отображается правая колонка

  3. 4
    ps
    @

    А как сделать так, чтобы между колонками были отступы? Колонки имеют background, но между ними прозрачные отступы и просвечивался основной фон страницы?