Около компьютерный сайт.
 
Главная
21 мая 2012 года, понедельник
Ошибка
  • -post-: Вам не разрешено добавлять сообщения в раздел.

Блочная верстка сайта с помощью div и css

WEB-строительство - Верстка сайта

web-uchebnikЗдравствуйте. Для многих уже не секрет, что блочная верстка web страниц гораздо эффективнее табличной. Во первых страница получается меньшего объёма. Во вторых лучше воспринимается поисковиками. В третьих быстрее отображается т.к. <DIV></div> отображается сразу после загрузки, ну а разметка не зря называется блочной. Каждый такой блок отображается самостоятельно в отличии от таблиц - которая отображается лишь после полной загрузки. Но эти преимущества даются не для всех так просто ведь <DIV> это строковый элемент, и разместить его в нужном месте не всегда получается. О одном решении этого вопроса я и написал в этой статье.

 

Если у Вас таких проблем не возникает то вероятно что читать данную статью вам не обязательно. Разве что для того что бы поправить и прокомментировать данный подход к блочной верстке. Вся конструктивная критика воспринимается адекватно.

Итак это было лирическое отступление, продолжим...

Верстать сайт мы будем по простому шаблону.

maketsajta

Как видите страница содержит пять блоков: Header (Шапка), Sidebar1 (Левая колонка), Sidebar2 (Правая колонка), MainContent (Основное содержимое), footer (Подвал)

Создайте индексный файл html, в котором мы и будем верстать наш сайт. Я надеюсь Вы знаете как это делается поэтому не буду сейчас объяснять элементарные вещи, описанные к тому же во многих в том числе и моих предыдущих статьях. Начинаться файл обязательно должен с DOCTYPE.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

Добавьте в наш файл шесть блоков <DIV></div>, вложенные по следующей схеме:

<div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

Для чего нам потребовался шестой блок <div>? Он будет оберткой для остальных и будет ограничивать остальные блоки. Таким образом у вас должен получиться примерно такой код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Моя первая страница сверстанная блоками</title>
</head>
<body>
<div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>
</body>
</html>

Что же получилось при запуске? Чистый лист, понятно, мы ведь ничего не вводили, а блоки невидимы. Давайте увидим их. Для этого нам прийдётся создать соответствующие классы CSS, в которых мы и определим фон и прочие параметры блоков. Благодаря которым они и будут вести себя так как мы задумали. Опредилите стили для каждого элемента. У меня это получилось вот так:

<style type="text/css">
<!--
body  {
    color: #000000;
}
.cbody #container {
    background: #FFFFFF;
}
 
.cbody #header {
    background: #33CCFF;
}

.cbody #sidebar1 {
    background: #FF99CC;
}
.cbody #sidebar2 {
    background: #FF99CC;
}
.cbody #mainContent {
    background:#FFFFFF;   
}
.cbody #footer {
    background:#336699;
}
-->
</style>

Данный код вы должны вставить между тегами <head> и </head>. Незабудьте также присвоить тегу <body> класс "cbody", всем тегам <div> присвоить соответствующие "id".

<div id="container">
  <div id="header">Шапка</div>
  <div id="sidebar1">левый сайдбар</div>
  <div id="sidebar2">правый сайдбар</div>
  <div id="mainContent">Содержание</div>
  <div id="footer">Подвал</div>
</div>

Теперь блоки будут видны

Шапка
левый сайдбар
правый сайдбар
Содержание
Подвал

Вот только результат никак не похож на требуемый макет. В этом и заключается особенность блочной верстки, строковые элементы отображаются строками, а нам нужно блоками. Займемся теперь настройкой css стилей наших блоков.

Разместим нашу страницу по центру экрана и назначим ей ширину 800 пикселей. Для этого добавляем соответствующие селекторы в класс .cbody #container.

.cbody #container {
  background: #FFFFFF;
  position: relative; /* относительная позиция отцентрует блок относительно левого и правого отступов*/
  width: 780px; /* используем на 20px меньше из полных 800px ширины это позволит избежать проблем с горизонтальной полосой прокрутки в браузерах Chrome */
  margin: 0 auto; /* параметр auto в союзе с width центрует страницу*/
  text-align: left; /* это заменяет text-align: center на элементе body. */
}

редактируем заголовок: .cbody #header

.cbody #header {
  height: 60px;
  padding: 0 10px 0 20px; /* дополнительные отступы слева и снизу для красоты. */
  background-color: #33CCFF;
}

Изменяем стиль .cbody #sidebar1

.cbody #sidebar1 {
  position: absolute;
  top: 60px; /* смещение сверху на высоту шапки */
  left: 0; /* положение слева */
  width: 150px; /* ширина колонки, фоновый цвет будет присутствовать только в пределах блока */
  padding: 15px 10px 15px 20px; /* отступы */
  background-color: #FF99CC;
}

.cbody #sidebar2

.cbody #sidebar2 {
  position: absolute;
  top: 60px; /* смещение сверху на высоту шапки */
  right: 0; /* положение справа */
  width: 160px; /* ширина колонки, фоновый цвет будет присутствовать только в пределах блока */
  padding: 15px 10px 15px 20px; /* отступы */
  background-color: #FF99CC;
}

.cbody #mainContent

.cbody #mainContent {
  margin: 0 200px; /* правое и левое поле создают две колонки по сторонам страницы. Безразлично, сколько sidebar содержит, пространство колонки останется неизменным. */
  padding: 0 10px; /* запомните padding пространство внутри div, а margin пространство за пределами div*/
}

.cbody #footer

.cbody #footer {
  padding: 0 10px 0 20px;
  background-color: #336699;
}

в результате получается следующий код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<meta name="author" content="Oleg Bugaev (Seth)"/>
<meta name="site" content="www.utgarda.ru"/>
<title>Моя первая страница сверстанная блоками</title><style type="text/css">
<!--
body  {
    color: #000000;
}
.cbody #container {
  background: #FFFFFF;
  position: relative; /* относительная позиция отцентрует блок относительно левого и правого отступов*/
  width: 780px; /* используем на 20px меньше из полных 800px ширины это позволит избежать проблем с горизонтальной полосой прокрутки в браузерах Chrome */
  margin: 0 auto; /* параметр auto в союзе с width центрует страницу*/
  text-align: left; /* это заменяет text-align: center на элементе body. */
}
.cbody #header {
  height: 60px;
  padding: 0 10px 0 20px; /* дополнительные отступы слева и снизу для красоты. */
  background-color: #33CCFF;
}
.cbody #sidebar1 {
  position: absolute;
  top: 60px; /* смещение сверху на высоту шапки */
  left: 0; /* положение слева */
  width: 150px; /* ширина колонки, фоновый цвет будет присутствовать только в пределах блока */
  padding: 15px 10px 15px 20px; /* отступы */
  background-color: #FF99CC;
}
.cbody #sidebar2 {
  position: absolute;
  top: 60px; /* смещение сверху на высоту шапки */
  right: 0; /* положение справа */
  width: 160px; /* ширина колонки, фоновый цвет будет присутствовать только в пределах блока */
  padding: 15px 10px 15px 20px; /* отступы */
  background-color: #FF99CC;
}
.cbody #mainContent {
  margin: 0 200px; /* правое и левое поле создают две колонки по сторонам страницы. Безразлично, сколько sidebar содержит, пространство колонки останется неизменным. */
  padding: 0 10px; /* запомните padding пространство внутри div, а margin пространство за пределами div*/
}
.cbody #footer {
  padding: 0 10px 0 20px;
  background-color: #336699;
}

-->
</style>
</head>
<body class="cbody">
  <div id="container">
    <div id="header">Шапка</div>
    <div id="sidebar1">левый сайдбар</div>
    <div id="sidebar2">правый сайдбар</div>
    <div id="mainContent">
      <p><strong>Содержание</strong></p>
      <p>контент вашего сайта</p>
    </div>
    <div id="footer">Подвал</div>
  </div>
</body>
</html>

Результат работы перед вами. Надеюсь вы пользуетесь нормальным браузером и он отображает разметку как положено.

Шапка
левый сайдбар
правый сайдбар

Содержание

Контент вашегого сайта

Подвал
(0 Голосов)
Прокомментировать
Необходимо авторизоваться или зарегистрироваться для участия в дискуссии.

Смотрите также:
Заработок пользователей
Name
Points
Seth
145
KonstantinRu
110
kiryan
14
andrejtris
14
darknefrit
14
Hitman
4
Посетители


alphauserpoints base boutikone cms cache drop_table sql head html injection installation integration joomla joomla sql juri kunena php-injection sample_data sql sh404sef style text css атака верстка джумла защита макет плагин правило решение сборка скрипт создать статья функции шаблоны

PR-CY.ru
SPRINTHOST.RU: быстрый и надежный хостинг!
  Copyright Утгарда © 2006-2012
Разработка и поддержка сайта Utgarda Media Group