Делаем простой 3-х колоночный шаблон

На одном из предыдущих уроков мы разобрали процесс создания простого 2-х колоночного шаблона CSS. А сейчас продолжим тему создания шаблонов CSS и построим 3-х колоночную структуру страницы.

 

Структура разметки HTML

Разметка, которую мы будем использовать, выглядит следующим образом:

<div id="body">
    <div id="header"></div>
    <div id="main">
        <div id="content-1"></div>
        <div id="content-2">
            <div id="content-2-1"></div>
            <div id="content-2-2"></div>
        </div>
    </div>
    <div id="footer"></div>
</div>

Вот как используются элементы разметки:

  • #body: контейнер, который устанавливает общую ширину шаблона и центрирует содержание по горизонтали в окне браузера.
  • #header: место для размещения заголовка. Включив данный элемент в шаблон, мы делаем "завершенную" страницу.
  • #main: элемент, в котором размещается содержание колонок. В нашем уроке для него не будут использоваться правила CSS, но при решении реальных задач такой элемент является очень практичным для определения дополнительных стилей.
  • #content-1: элемент, который содержит левую колонку.
  • #content-2: контейнер для средней и правой колонок.
  • #content-2-1: элемент, который содержит среднюю колонку.
  • #content-2-2: элемент, который содержит правую колонку.
  • #footer: нижний колонтитул страницы размещается здесь.

Конечно, некоторые из вас скажут, что контейнеры #main и #content-2 являются не семантическими и лишними. Однако, несмотря на то, что существуют методы построения 3-х колоночного шаблона без элементов #main и #content-2, на практике их использование позволяет создавать более понятный для понимания и надежный код CSS. Также контейнеры становятся полезными при разработке визуального дизайна шаблона. Недостатками использования таких элементов является увеличение на несколько байт кода HTML и сложность перестроения шаблона.

Теперь перейдем к разработке CSS.

 

Шаг 1. HTML без стилей.

Наполним нашу структуру HTML некоторым содержанием и описанием элементов.

Результат шага 1.

 

Шаг 2.  Устанавливаем общую ширину и задаем некоторые цвета.

Сделаем наш шаблон шириной 960 px и центрируем его по горизонтали. Также установим фоновые цвета для элементов:

html,
body {
    margin:0;
    padding:0;
    color:#000;
    background:#fff;
}
#body {
    width:960px;
    margin:0 auto;
    background:#ddd;
}
#header {
    background:#fdd;
}
#content-1 {
    background:#bfb;
}
#content-2-1 {
    background:#ddf;
}
#content-2-2 {
    background:#dff;
}
#footer {
    background:#ff9;
}

Результат шага 2.

 

Шаг 3. Создаем первые две колонки.

При построении колонок для первых двух мы будем использовать технику, использованную при создании 2-х колоночного шаблона. Устанавливаем для элементов #content-1 и #content-2 ширину и делаем их плавающими блоками со смещением в разные стороны:

#content-1 {
    float:left;
    width:240px;
    background:#bfb;
}
#content-2 {
    float:right;
    width:720px;
}

Теперь элемент #content-1 стал левой колонкой, а элементы #content-2-1 и #content-2-2 располагаются вертикально в правой части страницы.

Элемент #footer на данном этапе выглядит несуразно, но мы исправим ситуацию позже.

Результат шага 3.

 

Шаг 4. Завершаем построение структуры колонок полностью.

Разместим элементы #content-2-1 и #content-2-2 в колонки. Для этого повторим действия шага 3 для них - зададим ширину и сделаем плавающими блоками со смещением в разные стороны.

#content-2-1 {
    float:left;
    width:480px;
    background:#ddf;
}
#content-2-2 {
    float:right;
    width:240px;
    background:#dff;
}

Теперь у нас есть три колонки: элемент #content-1 - левая колонка, элемент #content-2-1 - центральная колонка, элемент #content-2-2 - правая колонка.

Результат шага 4.

 

Шаг 5. Сдвигаем нижний колонтитул вниз.

В данный момент элемент #footer выводится ниже элемента #content-1, что не соответствует нашим желаниям. Существует несколько методов для того, чтобы сдвинуть его вниз. Мы воспользуемся правилом clear:both:

#footer {
    clear:both;
    background:#ff9;
}


Результат шага 5.

 

Шаг 6. Завершающие штрихи

Наш шаблон почти готов. Нужно лишь установить отступы для контейнеров, чтобы улучшить внешний вид:

#header {
    padding:10px;
    background:#fdd;
}
#content-1 {
    float:left;
    width:220px;
    padding:10px;
    background:#bfb;
}
#content-2-1 {
    float:left;
    width:460px;
    padding:10px;
    background:#ddf;
}
#content-2-2 {
    float:right;
    width:220px;
    padding:10px;
    background:#dff;
}
#footer {
    clear:both;
    padding:10px;
    background:#ff9;
}

Обратите внимание, что отступы по горизонтали увеличивают общую ширину элемента, поэтому нужно вычитать их - элемент #content-1 стал шириной 220px вместо 240px, чтобы учесть отступ в 20px.

Также для элементов #header, #main, и #footer добавлен класс cf. В нем используются несколько правил, реализующих технику отмены обтекания  элементов без структурной разметки. Шаблон становится более надежным в случае добавления плавающих блоков в дальнейшей работе. Также фиксируются несколько ошибок отображения в IE 6 и IE 7. Теперь не нужно использовать правило clear:both для элемента #footer и его можно удалить.

Финальный вид шаблона.

Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/plBEE53Lek4/lessons.php

Читать комменты и комментировать

Добавить комментарий / отзыв



Защитный код
Обновить

Делаем простой 3-х колоночный шаблон | | 2012-06-19 12:03:49 | | Статьи Web-мастеру | | На одном из предыдущих уроков мы разобрали процесс создания простого 2-х колоночного шаблона CSS. А сейчас продолжим тему создания шаблонов CSS и построим 3-х колоночную структуру страницы. Структура | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: