В данной статье представим варианты двух – колоночного макета содержимого с «плавающей» шириной центральной информационной части и левой (правой) колонкой фиксированной ширины. А так – же приведём пример, как сделать двух – колоночный макет фиксированной ширины.

   Примечание автора: полностью кросс браузерный метод, поддерживается даже такими «старичками», как IE 6.0.

   Основные блоки, которые нам понадобятся:

  • Включающий в себя все элементы дизайна блокid: wrapper (width: 100%;)
  • Шапка сайтаid: header (height: 300px)
  • Левая колонка (правая колонка)id: sidebar (width: 300px)
  • Центральная информационная часть страницыid: content (width: 100%)
  • Подвал сайтаid: footer

   Примечание автора: Предположим, что шапка у нас фиксированной высоты, как бывает в большинстве дизайнов.

Пример вёрстки двух колоночного макета со 100% шириной и расположением меню слева:

   Результат в Вашем браузере:

#id: main-content
[Центральная информационная часть страницы]

Html вёрстка:

<div id="wrapper">
<div id="content">
	<div id="main-content">
	#id: main-content [Центральная информационная часть страницы]
</div>
</div>
<div id="sidebar">
	#id: sidebar [Левая(Правая) колонка]
</div>
<br class="clear" />
<div id="header">
	#id: header [Шапка сайта]
</div>
<div id="footer">
	#id: footer [Подвал сайта]
</div>
</div>

CSS:

body{
        text-align: center;
        width: 100%;
}
#wrapper{
        text-align: left;
        width: 100%;
        margin: 0 auto;
        position: relative;
        min-width: 990px;
}
#content,#header,#footer{
        width: 100%;
}
#header{
        position: absolute;
        top: 0;
        left: 0;
        height: 300px;
}
#content{
        width: 100%;
        float: left;
        margin: 0;
}
#main-content{
        width: auto;
        float: auto;
        margin: 0;
        margin-left: 310px;
}
#sidebar{
        width: 300px;
        float: left;
        margin: 0;
        margin-left: -100%;
}
#content,#sidebar{
        margin-top: 310px;
}
#header,#footer,.clear{
        clear: both;
        float: none;
}
#sidebar,#main-content,#content,#header,#footer,#wrapper{
        overflow: hidden;
}

   Как видите, в коде страницы вначале идёт основное информационное уникальное содержимое, после чего правая или левая колонки, потом шапка сайта и подвал. Но с помощью css и абсолютного позиционирования мы «доставляем шапку» сайта в браузере посетителя на место (вверх), а для левой колонки мы освобождаем место в main-content, делая отступ слева, равный ширине левой колонки, самой же колонке задаём -100% отступ и обтекание текстом по левой стороне, и колонка «подтягивается» на место. Для footer а же выставляем отмену обтекания текстом и очищаем поток.

   Примечание: не забываем задавать overflow: hidden для блоков, в которых будет подаваться содержимое, чтобы избежать разрывов содержимого и падения колонок в случае неправильного наполнения.

   Примечание: после содержимого левой колонки ставим br или div с обязательной очисткой потока и отменой обтекания текста, на самом - то деле этот hack нужен лишь для 100% совместимости с IE 6.0. Иначе наблюдается неявное копирование содержимого правой (левой) колонки.

   Совет: если Вам нужны отступы внутри блоков #header, #fooer, #main-content, #sidebar, создайте контейнер div с классом .innerpad с width = auto и назначьте необходимые отступы через margin.

Пример вёрстки двух колоночного макета со 100% шириной и расположением меню справа:

   Результат в Вашем браузере:

#id: main-content
[Центральная информационная часть страницы]

Html вёрстка:

Всё та же

CSS:

body{
        text-align: center;
        width: 100%;
}
#wrapper{
        text-align: left;
        width: 100%;
        margin: 0 auto;
        position: relative;
        min-width: 990px;
}
#content,#header,#footer{
        width: 100%;
}
#header{
        position: absolute;
        top: 0;
        left: 0;
        height: 300px;
}
#content{
        width: 100%;
        float: left;
        margin: 0;
}
#main-content{
        width: auto;
        float: auto;
        margin: 0;
        margin-right: 310px;
}
#sidebar{
        width: 300px;
        float: left;
        margin: 0;
        margin-left: -300px;
}
#content,#sidebar{
        margin-top: 310px;
}
#header,#footer,.clear{
        clear: both;
        float: none;
}
#sidebar,#main-content,#content,#header,#footer,#wrapper{
        overflow: hidden;
}

   Совет автора: и всё - таки советуем Вам обратить внимание при создании двух колоночного макета динамической длинны на то, что требуется предусмотреть минимальную ширину макета для разрешения 990 пикселей (1024 пикселя – очень распространённое разрешение среди планшетов и нетбуков). И максимальную ширину сайта, при которой внешний вид страницы будет оставаться читабельным (не будет много пустого места в центральной части). А так же задавать размер шрифтов в относительных единицах, например: em, %.

   Здесь нам помогут css свойства min-width и max-width.

А теперь приведём вёрстку двух колоночного макета фиксированной ширины и расположением меню слева (#wrapper: 990px;).

   Результат в Вашем браузере:

#id: main-content
[Центральная информационная часть страницы]

Html вёрстка:

Всё та же

CSS:

body{
        text-align: center;
        width: 100%;
}
#wrapper{
        text-align: left;
        width: 990px;
        margin: 0 auto;
        position: relative;
}
#content,#header,#footer{
        width: 100%;
}
#header{
        position: absolute;
        top: 0;
        left: 0;
        height: 300px;
}
#content{
        width: 100%;
        float: left;
        margin: 0;
}
#main-content{
        width: auto;
        float: auto;
        margin: 0;
        margin-left: 310px;
}
#sidebar{
        width: 300px;
        float: left;
        margin: 0;
        margin-left: -100%;
}
#content,#sidebar{
        margin-top: 310px;
}
#header,#footer,.clear{
        clear: both;
        float: none;
}
#sidebar,#main-content,#content,#header,#footer,#wrapper{
        overflow: hidden;
}
Пример вёрстки двух колоночного макета фиксированной длинны и расположением меню справа

   Результат в Вашем браузере:

#id: main-content
[Центральная информационная часть страницы]

HTML вёрстка:

Всё та же

CSS:

body{
        text-align: center;
        width: 100%;
}
#wrapper{
        text-align: left;
        width: 990px;
        margin: 0 auto;
        position: relative;
}
#content,#header,#footer{
        width: 100%;
}
#header{
        position: absolute;
        top: 0;
        left: 0;
        height: 300px;
}
#content{
        width: 100%;
        float: left;
        margin: 0;
}
#main-content{
        width: auto;
        float: auto;
        margin: 0;
        margin-right: 310px;
}
#sidebar{
        width: 300px;
        float: left;
        margin: 0;
        margin-left: -300px;
}
#content,#sidebar{
        margin-top: 310px;
}
#header,#footer,.clear{
        clear: both;
        float: none;
}
#sidebar,#main-content,#content,#header,#footer,#wrapper{
        overflow: hidden;
}

   Итак, преимущества этого метода в следующем:

  • HTML вёрстка во всех случаях остаётся одинаковой, вне зависимости от фиксированной или динамической 100% ширины макета, расположением колонок меню и навигации в левой или в правой части.
  • Преподносим самое важное содержимое всегда в начане страницы для поисковых систем (SEO вёрстка)
  • Поддержка всех браузеров (и даже очень старых) IE 6.0+, Firefox 2+, Opera 8+, Chrome, Safari

   В следующей статье рассмотрим универсальную вёрстку трёх колоночного макета, а так же рассмотрим примеры вёрстки при шапке динамической высоты, и с различной сменой дизайнов (двух колоночный, в одну колонку, в три колонки, две колонки слева, две колонки справа и т.п.) в зависимости от наличия информации в указанных позициях.

Больше информации о веб технологиях можно узнать из нашего перечня всех статей на сайте:

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


Яндекс.Метрика