Блочный сайт – Блочная верстка сайта — урок с примером

Содержание

Блочная верстка сайта — урок с примером

Раньше на просторах Интернета был широко распространён табличный тип вёрстки, которому посвящена отдельная статья. Однако со временем этот подход к созданию структуры сайта устарел, и на смену ему пришла блочная вёрстка.

Отличия блочной вёрстки от табличной

Если табличная вёрстка подразумевает, что содержимое страницы находятся внутри тега <table>, то концепция блочной вёрстки основана на активном использовании универсальных тегов <div>, внутрь которых помещается содержимое, включая другие теги.

Блочная вёрстка лишена недостатков табличной — поисковыми системами она индексируется лучше, её код не такой развесистый, да и блоки <div>, которые так любят называть «слоями», изначально задумывались универсальными, то есть «для всего», тогда как <table> — это таблица, которую нужно использовать для отображения табличных данных и не более того.

Единственный ощутимый минус блочной вёрстки — сделанные на ней сайты могут по-разному отображаться в обозревателях. Чтобы этого избежать, нужно делать вёрстку «кроссбраузерной», то есть одинаково отображаемой любым обозревателем.

Суть блочной вёрстки

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

Каждая часть страницы помещается в свой блок <div>: верх сайта — в первый, меню — во второй, контент — в третий и т. д. Каждый блок наполняется содержимым средствами HTML, а также позиционируется и оформляется с помощью CSS-разметки.

Конечный HTML-документ представляет собой набор блоков <div> с контентом внутри. Оформление зачастую находится в отдельном CSS-файле, подключенном к странице тегом <link>, или как минимум в контейнере <style> секции <head>.

Принципы блочной вёрстки

Первый — конечно же, повсеместное использование тега <div>, который можно назвать базовым элементом блочной структуры, но об этом было сказано уже достаточно много.

Второе правило — принцип разделения кода, согласно которому содержимое от оформления нужно отделять. Говоря проще и ближе к нашему случаю: HTML — отдельно, CSS — отдельно (желательно в разные файлы). Такой подход делает структуру понятней. Программисту не нужно открывать CSS, дизайнеру — HTML. Все смотрят свой код и не мешают друг другу. Идеально.

Третий принцип — таблицы нужно использовать не везде, а по необходимости, при этом полностью отказываться от них так же странно, как и применять не к месту.

Пример блочной вёрстки

Но, сколько не теоретизируй, а понимать всё проще на примере.

Итак, у нас есть макет (рисунок ниже). Условный, конечно — просто разметка, ведь цель примера — как можно наглядней объяснить принцип создания блочной вёрстки. Зная базу, навести красоту и усложнить макет вы сможете и сами, а я лучше не буду перегружать пример.

Согласно макету, страница сайта будет содержать пять блоков: «шапку», навигационное меню, боковую панель, основной блок с контентом и «ноги».

Сначала создадим HTML-страницу: обозначим структуру, разметим её. HTML-код будет таким:

<!DOCTYPE html>
<html>
<head>
    <title>Блочная вёрстка</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div>
	<div>
	<h3>header (шапка сайта)</h3>
	</div>
		 
	<div>
	<h3>Блок навигации</h3>
	</div>
		 
	<div>
	<h3>Левая панель</h3>
	</div>
		 
	<div>
	<h3>Основной контент страницы</h3>
	</div>
		 
	<div>
		 
	</div>
							   
	<div>
	<h3>footer (низ сайта)</h3>
	</div>
</div>
</body>
</html>

Разберём некоторые моменты.

<div> — это блок-родитель, внутри которого расположились все остальные блоки. Как ячейки таблицы внутри <table>. Назначение дочерних контейнеров должно быть понятно, за исключением разве что блока <div>. Это вспомогательный слой, его смысл будет понятен, когда вы увидите код CSS.

Если открыть HTML-файл в браузере, не подключая таблицу стилей, страница будет выглядеть так.

Теперь добавим файл CSS, код которого приведён ниже.

body {
     background: #FFF;
     color: #000;
     font-family: Arial, sans-serif;
     font-size: 14px;
}

#header {
     background: #F5DEB3;
     width: 100%;
     height: 55px;
}
 
#container {
     background: #FFD700;
     margin: auto auto;
     text-align: center;
     width: 80%;
     height: 400px;
}
 
#navigation {
     background: #FE9798;
     width: 100%;
     height: 25px;
}
 
#sidebar {
     background: #40E0D0;
     float: left;
     width: 20%;
     height: 280px;
}

#content {
     background: #DCDCDC;
     float: right;
     width: 80%;
     height: 280px;
}
 
#clear {
     clear: both;
}
 
#footer {
    background: #00BFFF;
	width: 100%;
	height: 40px;
}

С помощью стилей мы последовательно оформляем содержимое тега <body> и всех находящихся внутри контейнеров с помощью ранее изученных правил.

#clear { clear:both; } запрещает обтекание элемента слева и справа. Если убрать это правило, вёрстка «поедет» и низ сайта перестанет корректно отображаться.

CSS творит чудеса, и с ним наша HTML-страница примет уже совсем другой вид.

Вот и весь смысл блочной структуры. Дальше можно только наполнять сайт содержимым и усложнять оформление, но делаться это будет всё равно по изложенному выше принципу. Также посмотрите статью про вёрстку сайта из PSD макета, там эти принципы показаны более наглядно.

Полезные ссылки:

www.seostop.ru

20 примеров сайтов, построенных на блоках

Блоки в веб-дизайне — не новая технология с точки зрения верстки, но лишь недавно повсеместное использование плотно прилегающих блоков без просветов стало настоящим трендом. Это отличный способ для проектов, в которых большое количество информации нужно уложить максимально емко. Сегодня мы собрали примеры использования таких блоков в веб-дизайне.

 

 


marieseverac.com 


compliments.dk 


telstra2015ar.interactiveinvestorreports.com


vdesign.com.ar 


margauxbernard.com


mancini-traverso.com


pollenize.org


pucajewels.com


mirageparties.co.uk


z.ultranoir.com


playthinkcreative.it


indoffice.ru


m-goldstein.com 


oxenmade.com


tweetsfortreats.com


unheap.com


warben.com 


leapxd.com


enginedigital.com


thewebkitchen.co.uk


bodhicycling.be


benefunder.org

Автор подборки — Дежурка

Смотрите также:

  • Сайты с нестандартными макетами
  • Вдохновляющий минимализм в веб-дизайне
  • Эксперименты с формами в веб-дизайне

www.dejurka.ru

Блочная верстка или основы анатомии скелета сайтов

Сайты тоже имеют свой скелет. Но о его особенностях спрашивать врачей бесполезно. Да и ветеринары тоже не в курсе строения сайта. Об этом ведомо лишь верстальщикам. Именно от них зависит строение скелета будущего ресурса. А главным способом создания костей его скелета является блочная верстка.

Есть в верстке сайта что-то таинственное. Но это до тех пор, пока не познакомишься с этим ремеслом поближе. Начинаем наше посвящение:

Следующим этапом разработки сайта после создания его макета является верстка. Задача верстальщика перенести с помощью html кода и таблиц css скелет будущего сайта в виртуальный мир. Проще говоря, перенести размеры и пропорции ресурса в форму, понятную для браузера.

В процессе верстки кодом html происходит разбивка «скелета» сайта на части. А с помощью css (каскадных таблиц стилей) задаются размеры его «костей», цвет и расположение.

Различают несколько видов верстки:

I. Табличная – ранее была основным способом верстки. В табличной верстке для задания структуры сайта используется тег <table> и его дочерние теги. Верстка с помощью таблиц позволяет наиболее пропорционально расположить все элементы дизайна относительно друг друга. Но в тоже время такой код получается слишком объемным:

Также к основным недостаткам табличного кода относится его долгая загрузка и плохая индексация содержимого поисковыми системами.

Содержимое страницы, сверстанной на основе таблиц, не будет отображено до тех пор, пока не загрузятся все данные. Блочная верстка позволяет отображать каждый загруженный элемент отдельно.

Плохая индексация табличных страниц объясняется большими промежутками между блоками текста, расположенного в разных ячейках таблицы.

Теперь табличная верста редко используется в качестве основного метода создания сайтов. Сейчас ее применяют лишь для структурирования табличных данных и расположения графических изображений.

II. Блочная – в данный момент является основным способом верстки. В отличие от табличной блочная верстка обладает рядом преимуществ:

  • Отделение стиля элементов от кода html;
  • Возможность наложения одного слоя на другой – такая возможность во многом облегчает позиционирование элементов.
  • Лучшая индексация поисковиками;
  • Высокая скорость загрузки страницы, состоящей от взаимно независимых элементов;
  • Легкость создания визуальных эффектов (выпадающих меню, списков, всплывающих подсказок).

Основным недостатком блочной верстки является некая «двусмысленность» понимания ее кода различными браузерами. Поэтому часто html страницы приходится «доводить» путем использования специальных хаков.

С появлением блочной верстки родилось такое понятие, как «кроссбраузерность». Из-за различия отображения одного и того же элемента в разных браузерах верстальщикам приходится вставлять в основной html целые куски кода (хаки).

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

Основным элементом, применяемым в блочной верстке, является тег <div>. Участок кода, отделенный этим тегом, называется слоем. Все стилевые решения вынесены за границы кода html в каскадные таблицы стилей. Доступ к ним осуществляется через идентификаторы или классы css:

Перед началом верстки готовый psd макет сайта в графическом редакторе разрезают на блоки (слои). В отдельную папку помещают вырезанные фоновые картинки, которые будут прикрепляться отдельно к каждому слою:

Для примера возьмем вот такой макет сайта, созданный в Photoshop. Сначала в текстовом редакторе с помощью div задаем структуру будущего ресурса и присваиваем каждому слою свой селектор id. Получается такая структура:

Затем к готовой структуре сайта на html строкой <link rel=»stylesheet» type=»text/css» href=»style.css» /> прикрепляем файл css. После чего добавляем в него стилевое описание каждого слоя, позиционирование относительно других элементов и его размеры.

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

Полный код примера index.html:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>Пример блочной верстки</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
 
<body>
 
<div>
	<div>
	<h3>Шапка</h3>
	</div>
		 
	<div>
	<h3>Блок навигации</h3>
	</div>
		 
	<div>
	<h3>Меню</h3>
	</div>
		 
	<div>
	<h3>Контент</h3>
	</div>
		 
	<div>
		 
	</div>
							   
	<div>
	<h3>Подвал сайта</h3>
	</div>
</div>
		 
</body>
</html>

Содержимое файла style.css:

body {
            background: #f3f2f3;
            color: #000000;
            font-family: Trebuchet MS, Arial, Times New Roman;
            font-size: 12px;
}
 
#container {
            background:#99CC99;
            margin: 30px auto;
            width: 900px;
            height: 600px;
}
 
#header {
            background: #66CCCC;
            height: 100px;
            width: 900px;
}
 
#navigation {
            background: #FF9999;
            width: 900px;
            height: 20px;
}
 
#menu {
            background: #99CC99;
            float: left;
            width: 200px;
            height: 400px;
}
 
#content {
            background: #d2d0d2;
            float: right;
 
            width: 700px;
            height: 400px;
}
 
#clear {
            clear:both;
}
 
#footer {
            background: #0066FF;
            height: 80px;
            width: 900px;
}

Вот так наш пример блочной верстки сайта выглядит в окне браузера:

Конечно, этот пример является лишь наглядным пособием для демонстрации того, как происходит блочная верстка. Настоящая верстка происходит с использование фоновых изображений и логотипов, подключаемых в css. А также с включением в html и css кода хаков для оптимизации отображения во всех браузерах.

Для редактирования кода страниц сайта используются специальные редакторы html. Многие из них способны автоматически генерировать код визуальных элементов, создаваемых в них пользователем в режиме «дизайн». Но такой код не является валидным, и чаще всего нуждается в «ручной» доводке:

С помощью рассмотренных здесь основ блочной верстки можно легко сверстать свой сайт самостоятельно. Тогда будущий ресурс будет более родным и знакомым. Ведь в его скелете все косточки вы «перемоете» собственными руками.

www.internet-technologies.ru

Блочная верстка сайтов в CSS

Всем доброго дня!

На связи Бернацкий Андрей!

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

Кстати говоря, данный выпуск имеет видео версию, можете скачать по ссылке:

Видео версия 13 урока

Для этого, нам необходимо познакомиться с CSS-свойством float, которое является одним из наиболее частоиспользуемых, при блочной верстке страниц сайта.

Практический курс по верстке адаптивного сайта с нуля!

Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3

Узнать подробнее

Итак, свойство float предназначено для выравнивания элементов на странице. Это что-то похожее на параметр align в HTML тегах.

Свойство float:

Значения:

left – выравнивает элемент по левому краю.

right — выравнивает элемент по правому краю.

inherit – использует стиль выравнивания, как у родительского элемента.

none – без выравнивания.

Допустим нам нужно выровнять изображение по правому краю. Для него мы должны прописать:

<img src=»myimg.jpg» />

<img src=»myimg.jpg» />

Это будет один к одному, как если бы мы указали:

<img src=»myimg.jpg» align=»right» />

<img src=»myimg.jpg» align=»right» />

Изображение выровняется по правому краю, а текст, который идет после изображения, будет обтекать его справа. Если нам нужно запретить обтекание текста, используем свойство clear.

Свойство clear:

Значения:

left – отменяет обтекание слева.

right — отменяет обтекание справа.

inherit – отменяет обтекание, которое было у родительского элемента.

none – без обтекания.

both – отменяет любое выравнивание.

Но, чаще, свойство float используется для расположения элементов на странице.

Посмотрите на рисунок:

Это каркас сайта. Казалось бы, обычная таблица, но нет! Для реализации такое разметки не использовалась ни одна таблица! Все элементы – это теги <div></div>.

Посмотрим, как это можно легко реализовать.

Для начала создаем четыре блока div.

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

<div>

<div>

</div>

<div>

</div>

<div>

</div>

</div>

div – основной блок. Он содержит все остальные блоки, которые только у нас будут использоваться.

div – блок, в котором будет основное содержимое страницы (зеленый слева).

div – правый блок. В примере в нем находиться текст, но в реальной ситуации, там может быть навигация, рекламные баннеры, и т. д.

div – желтый нижний блок. В нем, обычно, расположена контактная информация, различные ссылки и т.д.

Практический курс по верстке адаптивного сайта с нуля!

Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3

Узнать подробнее

Давайте теперь наполним наши блоки содержимым.

В общем, без задания стилей мы ничего особенного не увидим:

Теперь назначим стили для блоков:

.main{
background-color:#000099; width:600px; margin:0 auto;
}
.content{
background-color:#00CC00; width:400px;
}
.righter{
background-color:#660033; width:200px;
}
.foot{
background-color:#FFFF00;
}
color:#FFFF00;
}

.main{

background-color:#000099; width:600px; margin:0 auto;

}

.content{

background-color:#00CC00; width:400px;

}

.righter{

background-color:#660033; width:200px;

}

.foot{

background-color:#FFFF00;

}

color:#FFFF00;

}

Пока, думаю, все понятно. Все вышеизложенное описано в предыдущих выпусках рассылки.

Увидеть мы должны примерно следующее:

А теперь проанализируем код страницы.

Главному блоку у нас задана ширина в 600px, блоку с содержимым 400рх, а для левого блока 200рх. Но два последних блока не стали в один ряд, а расположились друг за другом.

Пришло время воспользоваться свойством float. В стилях дописываем следуюшее:

.content{
background-color:#00CC00; width:400px; float:left;
}
.righter{
background-color:#660033; width:200px; float: left;
}

.content{

background-color:#00CC00; width:400px; float:left;

}

.righter{

background-color:#660033; width:200px; float: left;

}

Остальные стили пока не трогаем. Получили такую вещь:

Что-то получили, но не совсем то, что нужно. Но если разобраться в теории, то все свойства сработали корректно. Мы задали float:left для левого и правого блока, они выбились из потока следования элементов, и все, что было за ними, заняло свободное место вокруг этих блоков (аналогично как текст обтекает картинку, если ей задать это свойство).

Соответственно, чтобы нижний блок стал на свое, место пропишем следующее:

.foot{
background-color:#FFFF00; clear:both; float:left; width:100%;
}

.foot{

background-color:#FFFF00; clear:both; float:left; width:100%;

}

clear:both – для отмены выравнивания от предыдущих блоков.

float:left – для собственного выравнивания блока.

width:100% — чтобы блок занял всю ширину основного блока.

Получили:

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

Одним из решений данной проблемы (самой простой и универсальной, на мой взгляд) является задание отступов снизу.

Делаем их следующим образом:

.main{
background-color:#000099; width:600px; margin:0 auto; overflow:hidden;
}
.content{
background-color:#00CC00; width:400px; float:left; padding-bottom:32000px; margin-bottom:-32000px;
}
.righter{
background-color:#660033; width:200px; float: left; padding-bottom:32000px; margin-bottom:-32000px;
}

.main{

background-color:#000099; width:600px; margin:0 auto; overflow:hidden;

}

.content{

background-color:#00CC00; width:400px; float:left; padding-bottom:32000px; margin-bottom:-32000px;

}

.righter{

background-color:#660033; width:200px; float: left; padding-bottom:32000px; margin-bottom:-32000px;

}

После добавления этого кода получим:

Фон левого блока дотянулся до низа страницы. Теперь если мы будем менять содержимое блоков, то фон будет тянуться до низа, так как это и нужно. Собственно для этого и нужны отступы padding-bottom:32000px; margin-bottom:-32000px; для обоих блоков.

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

В общем-то все, что нужно мы получили. Осталось только добавить отступов к блокам и выровнять текст в нижнем блоке по центру. Но это я оставлю вам на самостоятельную доработку.

На этом, выпуск посвящённый блочной верстке сайтов и страниц, завершим.

Просьба присылать с вопросом ваш код того, что вы делаете. Так будет проще и мне понять, что у вас не получилось и дать вам четкий ответ. И вам меньше объяснять в письме, что у вас не получается.

Данный урок имеет видео версию, которую Вы мо жете скачать по ссылке:

Видео версия 13 урока

Практический курс по верстке адаптивного сайта с нуля!

Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3

Узнать подробнее

PSD to HTML

Практика верстки сайта на CSS Grid с нуля

Смотреть

webformyself.com

Блочная верстка сайта css, фиксированный и резиновый дизайн

Цель урока: Знакомство с блочной версткой CSS. Получение навыков использования блочной верстки сайта

Блочная верстка сайта

  • При работе со слоями или, иначе говоря, блоками и элементами div, основная нагрузка ложится на CSS, т.к. без свойств слои из себя практически ничего не представляют.
  • К сожалению до сих пор существует проблема с кроссбраузерностью при работе с блоками. Т.е. одни и те же свойства дают разный результат в разных браузерах. Для борьбы с такими проблемами существуют так называемые хаки. Хак — это набор приемов, когда отдельным браузерам подается код, который понимается только этим браузером, а остальными игнорируется.

Отличительные черты от табличной верстки

Допустим, необходимо создать шаблон страницы с «шапкой», «подвалом» и двумя колонками.
Отличия:

  1. Высота слоев div ограничена высотой контента:
  2. Табличная верстка Блочная верстка
  3. В случае, когда содержимое слоя превышает его установленную высоту, то браузеры по-разному ведут себя — одни увеличивают высоту слоя под новый контент, а другие, оставляя высоту первоначальной, накладывают контент поверх слоя.

Фиксированный дизайн или
жесткая блочная верстка (две колонки)

  • Фиксированный макет подразумевает использование слоев заданной ширины, которая определяется разрешением монитора пользователя.
  • Так как наиболее популярным среди пользователей сети является разрешение монитора 1024×768, то желательно ориентироваться именно на него. Общая ширина блоков в таком случае составляет 900–1000 пикселей (небольшая часть пикселей требуется на полосы прокрутки и границы окна браузера).
  • Основной блок с контентом размещается по центру, тогда «свободные» поля по краям неплохо смотрятся даже при большом разрешении монитора.

Рис.1. Пример фиксированного дизайна

  • Общая ширина может выбираться дизайнером, что называется «на глаз», или после сбора каких-либо дополнительных сведений.
  • Пример: создать фиксированный дизайн сайта на основе представленного выше изображения

    Выполнение:

    • «Разбиваем» все основные элементы страницы на блоки следующим образом:
      • блок 1 — слой первый (id="shapka"),
      • блок 2 и 3 заключаются в единый блок (id="container"),
      • блок 2 — слой с меню (id="menu"),
      • блок 3 — слой с контентом (id="content"),
      • блок 4 — слой с id="bottom".

    Схематично изобразим расположение блоков:

    <body>
    <div>1</div>
    <div>
    	<div>2</div>
    	<div>3</div>
    </div>
    <div>4</div>
    </body>

    <body>
    <div>1</div>
    <div>
    <div>2</div>
    <div>3</div>
    </div>
    <div>4</div>
    </body>

    1. Задаем свойства «шапки» (блок 1)

    1. либо напрямую задав значение свойству height в пикселях, процентах или др. единицах;
    2. например, для верхнего слоя «шапки»:

    3. либо задать высоту при помощи отступа
    4. например:

        padding-top: 15px; 
        padding-bottom: 15px;

      padding-top: 15px;
      padding-bottom: 15px;

    Весь код для шапки:

    #shapka{
      text-align: left; /* Выравнивание внутреннего контента по левому краю */
      width: 750px; /* Ширина блока и общая ширина*/
      background: #900000; /* Цвет фона */
      height: 50px; /* Высота блока */
      margin-right: auto; /* Авто-отступ справа */
      margin-left: auto; /* Авто-отступ слева */
      padding: 10px; /* Внутренние поля вокруг содержимого */
     }

    #shapka{
    text-align: left; /* Выравнивание внутреннего контента по левому краю */
    width: 750px; /* Ширина блока и общая ширина*/
    background: #900000; /* Цвет фона */
    height: 50px; /* Высота блока */
    margin-right: auto; /* Авто-отступ справа */
    margin-left: auto; /* Авто-отступ слева */
    padding: 10px; /* Внутренние поля вокруг содержимого */
    }

    2. Создаем свойства контейнера

    3. Создаем свойства для блока 2 — меню

    4. Создаем свойства для блока 3 — контент

    • Задаем ширину слоя из расчета 770px — 200px = 570px, Но! так как мы установили внутренние отступы в обоих блоках 2 и 3, то мы должны вычесть еще 40 пикселей: 20 — внутренние отступы блока с меню и 20 — внутренние отступы блока с контентом. Получим ширину слоя 770px — 200px — 40px = 530px
    • Задаем обтекание float: left, исключая баг браузера Internet Explorer: если не установить свойство, то между слоями будет зазор. Кроме того, если не установить это свойство, то блок окажется за блоком меню, и только лишь его контент (текст) будет обтекать блок меню справа.
    • Задаем цвет заднего фона (background) и внутренние поля (padding)
    • #content { /* Правая колонка*/ 
          width: 550px; /* Ширина слоя */ 
          float: left; /* Обтекание с соседним слоем */ 
          padding: 10px; /* Внутренние поля вокруг содержимого */ 
          background: #e0e0e0; /* Цвет заднего фона */  
         }

      #content { /* Правая колонка*/
      width: 550px; /* Ширина слоя */
      float: left; /* Обтекание с соседним слоем */
      padding: 10px; /* Внутренние поля вокруг содержимого */
      background: #e0e0e0; /* Цвет заднего фона */
      }

    5. Создаем свойства для блока 4 — «подвал»

    • Ширину слоя устанавливаем в 750 пикселей
    • Для этого блока надо убрать обтекание, т.е. установить свойство clear
    • Устанавливаем внутренние поля padding
    • Задаем цвет для фона (background) и текста (color)
    • Центрируем блок (margin-right и margin-left)
    • #bottom{
      	width:750px; /* Ширина слоя */
      	clear:left; /* возвращаем блочность и располагаем слой слева */
      	padding: 10px; /* Внутренние поля вокруг содержимого */
              background:#444; /* фон */
      	color:#fff; /* цвет текста */
              margin-right: auto; /* Авто-отступ справа */
              margin-left: auto; /* Авто-отступ слева */
      }

      #bottom{
      width:750px; /* Ширина слоя */
      clear:left; /* возвращаем блочность и располагаем слой слева */
      padding: 10px; /* Внутренние поля вокруг содержимого */
      background:#444; /* фон */
      color:#fff; /* цвет текста */
      margin-right: auto; /* Авто-отступ справа */
      margin-left: auto; /* Авто-отступ слева */
      }

    Итоговый код: всё вместе

    /* для блока 1 - шапка */
    #shapka{
      text-align: left; /* Выравнивание внутреннего контента по левому краю */
      width: 750px; /* Ширина блока и общая ширина*/
      background: #900000; /* Цвет фона */
      height: 50px; /* Высота блока */
      margin-right: auto; /* Авто-отступ справа */
      margin-left: auto; /* Авто-отступ слева */
      padding: 10px; /* Внутренние поля вокруг содержимого */
    }
    /* для контейнера */
    #container {
      width: 770px; /* Ширина слоя или ширина макета+20px */
      margin-right: auto; /* Авто-отступ справа */
      margin-left: auto; /* Авто-отступ слева */
     }
    /* для блока 2 - меню */
    #menu {
      width: 200px; /* Ширина слоя */ 
      float: left; /* Обтекание с соседним слоем */ 
      color: white; /* Цвет текста */
      background: #008080; /* Цвет фона */
      padding: 10px; /* Внутренние поля вокруг содержимого */
     }
    /* для блока 3 - контент */
    #content { /* Правая колонка*/ 
        width: 530px; /* Ширина слоя */ 
        float: left; /* Обтекание с соседним слоем */ 
        padding: 10px; /* Внутренние поля вокруг содержимого */ 
        background: #e0e0e0; /* Цвет заднего фона */  
       } 
    /* для блока 4 - подвал */
    #bottom{
    	width:750px; /* Ширина слоя */ 
    	clear:left; /* возвращаем блочность и располагаем слой слева */
    	padding: 10px; /* Внутренние поля вокруг содержимого */
    	background:#444;
    	color:#fff;
    	margin-right: auto; /* Авто-отступ справа */
        margin-left: auto; /* Авто-отступ слева */
    }

    /* для блока 1 — шапка */
    #shapka{
    text-align: left; /* Выравнивание внутреннего контента по левому краю */
    width: 750px; /* Ширина блока и общая ширина*/
    background: #900000; /* Цвет фона */
    height: 50px; /* Высота блока */
    margin-right: auto; /* Авто-отступ справа */
    margin-left: auto; /* Авто-отступ слева */
    padding: 10px; /* Внутренние поля вокруг содержимого */
    }
    /* для контейнера */
    #container {
    width: 770px; /* Ширина слоя или ширина макета+20px */
    margin-right: auto; /* Авто-отступ справа */
    margin-left: auto; /* Авто-отступ слева */
    }
    /* для блока 2 — меню */
    #menu {
    width: 200px; /* Ширина слоя */
    float: left; /* Обтекание с соседним слоем */
    color: white; /* Цвет текста */
    background: #008080; /* Цвет фона */
    padding: 10px; /* Внутренние поля вокруг содержимого */
    }
    /* для блока 3 — контент */
    #content { /* Правая колонка*/
    width: 530px; /* Ширина слоя */
    float: left; /* Обтекание с соседним слоем */
    padding: 10px; /* Внутренние поля вокруг содержимого */
    background: #e0e0e0; /* Цвет заднего фона */
    }
    /* для блока 4 — подвал */
    #bottom{
    width:750px; /* Ширина слоя */
    clear:left; /* возвращаем блочность и располагаем слой слева */
    padding: 10px; /* Внутренние поля вокруг содержимого */
    background:#444;
    color:#fff;
    margin-right: auto; /* Авто-отступ справа */
    margin-left: auto; /* Авто-отступ слева */
    }

    </style>
    </head> 
    <body>
    <div>1</div>
    <div>
    	<div>2</div>
    	<div>3</div>
    </div>
    <div>4</div>
    </body>

    </style>
    </head>
    <body>
    <div>1</div>
    <div>
    <div>2</div>
    <div>3</div>
    </div>
    <div>4</div>
    </body>

    Результат:

    Рис.2. Жесткая блочная верстка из двух колонок

    Фиксированный дизайн для трех колонок

    При фиксированном дизайне для макета из трех колонок можно выделить два основных подхода построения модульной сетки:

    1. Использование свойства float для расположения колонок рядом.
    2. Использование набора тех CSS свойств, которые предназначены для позиционирования слоев.

    Рассмотрим первый случай.

    Использование свойства float для макета в три колонки

    На рис. 3 — результат использования свойства float для трехколонного макета. На самом деле используется 6 слоев — отдельно для заголовков колонок и отдельно для самих колонок.

    Рис. 3. Фиксированный дизайн в три колонки

    Пример: создать веб-страницу с макетом из трех колонок, изображенную на рис. 3. Использовать приемы фиксированного блочного макетирования

    Выполнение:

    1. Создание структуры html-кода

    • Определим для заголовков три слоя (#header...) и для колонок три слоя (#col...).
    • Так как колонки и их заголовки расположены на двух разных строках, то объеденим их в контейнеры (class="container").
    • Получим схематичное изображение расположения блоков:

    Получим следующую html-структуру:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    <body>
    <div>
        <div>Евгений Евтушенко</div>
        <div>Валерий Брюсов</div>
        <div>Эдуард Асадов</div>
      </div>
      <div>
        <div>
    		Мне снится старый друг,<br/>который стал врагом,<br/>
    		но снится не врагом,<br/>а тем же самым другом.<br/>
    		Со мною нет его,<br/>но он теперь кругом,<br/>
    		и голова идет<br/>от сновидений кругом.
    	</div>
        <div>
    	Великое вблизи неуловимо,<br/>Лишь издали торжественно оно,<br/>
    	Мы все проходим пред великим мимо<br/>И видим лишь случайное звено.
    	</div>
        <div>
    	В любых делах при максимуме сложностей<br/>Подход к проблеме все-таки один:<br/>
    	Желанье - это множество возможностей,<br/>А нежеланье - множество причин.
    	</div>
      </div>
    </body>

    <body>
    <div>
    <div>Евгений Евтушенко</div>
    <div>Валерий Брюсов</div>
    <div>Эдуард Асадов</div>
    </div>
    <div>
    <div>
    Мне снится старый друг,<br/>который стал врагом,<br/>
    но снится не врагом,<br/>а тем же самым другом.<br/>
    Со мною нет его,<br/>но он теперь кругом,<br/>
    и голова идет<br/>от сновидений кругом.
    </div>
    <div>
    Великое вблизи неуловимо,<br/>Лишь издали торжественно оно,<br/>
    Мы все проходим пред великим мимо<br/>И видим лишь случайное звено.
    </div>
    <div>
    В любых делах при максимуме сложностей<br/>Подход к проблеме все-таки один:<br/>
    Желанье — это множество возможностей,<br/>А нежеланье — множество причин.
    </div>
    </div>
    </body>

    2. Добавление стилей для заголовков (селектор header...) и колонок (селектор col...)

    • Ширину колонок и заголовков сделаем у всех одинаковой. Поскольку колонок 3, а средняя ширина страницы должна быть примерно 700-900 пикселей, то установим ширину колонок в 250 пикселей.
    •  #header1, #header2, #header3, #col1, #col2, #col3 {
          width: 250px; /* Ширина колонок */
      }

      #header1, #header2, #header3, #col1, #col2, #col3 {
      width: 250px; /* Ширина колонок */
      }

    • Добавим внутренние поля (отступы от содержимого текста) — padding и внешние отступы, чтобы обеспечить зазор между колонками. Поскольку свойства задаются сразу для все колонок одновременно, а сам весь макет не центрируется, а выравнивается по левому краю, то установим отступ только с одной стороны — левой — у всех колонок одновременно (margin-left).
    •  #header1, #header2, #header3, #col1, #col2, #col3 {
          width: 250px; /* Ширина колонок */
          padding: 5px; /* Поля вокруг текста */
          margin-left: 5px; /* Отступ слева */
         }

      #header1, #header2, #header3, #col1, #col2, #col3 {
      width: 250px; /* Ширина колонок */
      padding: 5px; /* Поля вокруг текста */
      margin-left: 5px; /* Отступ слева */
      }

    • Добавим также внешний отступ сверху, обеспечив зазор по вертикали между заголовками и колонками, а также отступ заголовков от верха страницы (margin-top).
    •  #header1, #header2, #header3, #col1, #col2, #col3 {
          ...
          margin-top: 2px; /* Отступ сверху */
         }

      #header1, #header2, #header3, #col1, #col2, #col3 {

      margin-top: 2px; /* Отступ сверху */
      }

    • Для того, чтобы блочные теги div, расположились рядом друг с другом, необходимо задать им обтекание — float.
    •  #header1, #header2, #header3, #col1, #col2, #col3 {
          ...
          float: left; /* Состыковка колонок по горизонтали */
         }

      #header1, #header2, #header3, #col1, #col2, #col3 {

      float: left; /* Состыковка колонок по горизонтали */
      }

    • Добавляем границу для блоков (border) и и задаем параметры шрифта (font-family, font-weight, font-size, color).
    •  #header1, #header2, #header3, #col1, #col2, #col3 {
          ...
          border: 1px solid black; /* Рамка вокруг слоя */
          font-family: Verdana, Arial, sans-serif; /* Не серифный или рубленый шрифт */
          font-weight: bold; /* Жирное начертание текста заголовка */
          font-size: 80%; /* Размер шрифта */
          color: white; /* Цвет текста заголовка */
         }

      #header1, #header2, #header3, #col1, #col2, #col3 {

      border: 1px solid black; /* Рамка вокруг слоя */
      font-family: Verdana, Arial, sans-serif; /* Не серифный или рубленый шрифт */
      font-weight: bold; /* Жирное начертание текста заголовка */
      font-size: 80%; /* Размер шрифта */
      color: white; /* Цвет текста заголовка */
      }

      Получим код:

       #header1, #header2, #header3, #col1, #col2, #col3 {
          width: 250px; /* Ширина колонок */
          padding: 5px; /* Поля вокруг текста */
          margin-left: 5px; /* Отступ слева */
          margin-top: 2px; /* Отступ сверху */
          float: left; /* Состыковка колонок по горизонтали */
          border: 1px solid black; /* Рамка вокруг слоя */
          font-family: Verdana, Arial, sans-serif; /* Не серифный или рубленый шрифт */
          font-weight: bold; /* Жирное начертание текста заголовка */
          font-size: 80%; /* Размер шрифта */
          color: white; /* Цвет текста заголовка */
      }

      #header1, #header2, #header3, #col1, #col2, #col3 {
      width: 250px; /* Ширина колонок */
      padding: 5px; /* Поля вокруг текста */
      margin-left: 5px; /* Отступ слева */
      margin-top: 2px; /* Отступ сверху */
      float: left; /* Состыковка колонок по горизонтали */
      border: 1px solid black; /* Рамка вокруг слоя */
      font-family: Verdana, Arial, sans-serif; /* Не серифный или рубленый шрифт */
      font-weight: bold; /* Жирное начертание текста заголовка */
      font-size: 80%; /* Размер шрифта */
      color: white; /* Цвет текста заголовка */
      }

    • Установим задний фон отдельно для каждого селектора.
    •    #header1 { background: #B38541; }
         #header2 { background: #008159; }
         #header3 { background: #006077; }
         #col1 { background: #EBE0C5; }
         #col2 { background: #BBE1C4; }
         #col3 { background: #ADD0D9; }

      #header1 { background: #B38541; }
      #header2 { background: #008159; }
      #header3 { background: #006077; }
      #col1 { background: #EBE0C5; }
      #col2 { background: #BBE1C4; }
      #col3 { background: #ADD0D9; }

    Смотрим промежуточный результат:

    Рис. 4. Промежуточный результат

    3. Задание стиля для контейнеров

     #col1, #col2, #col3 { 
        font-family: "Times New Roman", Times, serif; /* Шрифт серифный или с засечками */
        font-size: 100%; /* Размер шрифта */
        font-weight: normal; /* Нормальное начертание */
        color: black; /* Цвет текста */
       }

    #col1, #col2, #col3 {
    font-family: «Times New Roman», Times, serif; /* Шрифт серифный или с засечками */
    font-size: 100%; /* Размер шрифта */
    font-weight: normal; /* Нормальное начертание */
    color: black; /* Цвет текста */
    }

    Итоговый код: всё вместе

    /* для колонок и их заголовков */
     #header1, #header2, #header3, #col1, #col2, #col3 { 
         width: 250px; /* Ширина колонок */
        padding: 5px; /* Поля вокруг текста */
        margin-left: 5px; /* Отступ слева */
        margin-top: 2px; /* Отступ сверху */
        float: left; /* Состыковка колонок по горизонтали */
        border: 1px solid black; /* Рамка вокруг слоя */
        font-family: Verdana, Arial, sans-serif; /* Рубленый шрифт */
        font-weight: bold; /* Жирное начертание текста заголовка */
        font-size: 80%; /* Размер шрифта */
        color: white; /* Цвет текста заголовка */
       }
       /* для колонок */
       #col1, #col2, #col3 { 
        font-family: "Times New Roman", Times, serif; /* Шрифт с засечками */
        font-size: 100%; /* Размер шрифта */
        font-weight: normal; /* Нормальное начертание */
        color: black; /* Цвет текста */
       } 
     
       /* Цвет фона каждого слоя */
       #header1 { background: #B38541; }
       #header2 { background: #008159; }
       #header3 { background: #006077; }
       #col1 { background: #EBE0C5; }
       #col2 { background: #BBE1C4; }
       #col3 { background: #ADD0D9; }
     
       .container { 
         clear: both;  /* Отменяет действие float */ 
       }

    /* для колонок и их заголовков */
    #header1, #header2, #header3, #col1, #col2, #col3 {
    width: 250px; /* Ширина колонок */
    padding: 5px; /* Поля вокруг текста */
    margin-left: 5px; /* Отступ слева */
    margin-top: 2px; /* Отступ сверху */
    float: left; /* Состыковка колонок по горизонтали */
    border: 1px solid black; /* Рамка вокруг слоя */
    font-family: Verdana, Arial, sans-serif; /* Рубленый шрифт */
    font-weight: bold; /* Жирное начертание текста заголовка */
    font-size: 80%; /* Размер шрифта */
    color: white; /* Цвет текста заголовка */
    }
    /* для колонок */
    #col1, #col2, #col3 {
    font-family: «Times New Roman», Times, serif; /* Шрифт с засечками */
    font-size: 100%; /* Размер шрифта */
    font-weight: normal; /* Нормальное начертание */
    color: black; /* Цвет текста */
    }

    /* Цвет фона каждого слоя */
    #header1 { background: #B38541; }
    #header2 { background: #008159; }
    #header3 { background: #006077; }
    #col1 { background: #EBE0C5; }
    #col2 { background: #BBE1C4; }
    #col3 { background: #ADD0D9; }

    .container {
    clear: both; /* Отменяет действие float */
    }

    </style>
    </head> 
    <body>
    <div>
        <div>Евгений Евтушенко</div>
        <div>Валерий Брюсов</div>
        <div>Эдуард Асадов</div>
      </div>
      <div>
        <div>
    		Мне снится старый друг,<br/>
    		который стал врагом,<br/>
    		но снится не врагом,<br/>
    		а тем же самым другом.<br/>
    		Со мною нет его,<br/>
    		но он теперь кругом,<br/>
    		и голова идет<br/>
    		от сновидений кругом.
    	</div>
        <div>
    	Великое вблизи неуловимо,<br/>
    	Лишь издали торжественно оно,<br/>
    	Мы все проходим пред великим мимо<br/>
    	И видим лишь случайное звено.
    	</div>
        <div>
    	В любых делах при максимуме сложностей<br/>
    	Подход к проблеме все-таки один:<br/>
    	Желанье - это множество возможностей,<br/>
    	А нежеланье - множество причин.
    	</div>
      </div>
    </body>

    </style>
    </head>
    <body>
    <div>
    <div>Евгений Евтушенко</div>
    <div>Валерий Брюсов</div>
    <div>Эдуард Асадов</div>
    </div>
    <div>
    <div>
    Мне снится старый друг,<br/>
    который стал врагом,<br/>
    но снится не врагом,<br/>
    а тем же самым другом.<br/>
    Со мною нет его,<br/>
    но он теперь кругом,<br/>
    и голова идет<br/>
    от сновидений кругом.
    </div>
    <div>
    Великое вблизи неуловимо,<br/>
    Лишь издали торжественно оно,<br/>
    Мы все проходим пред великим мимо<br/>
    И видим лишь случайное звено.
    </div>
    <div>
    В любых делах при максимуме сложностей<br/>
    Подход к проблеме все-таки один:<br/>
    Желанье — это множество возможностей,<br/>
    А нежеланье — множество причин.
    </div>
    </div>
    </body>

    Результат:

    Рис. 5. Результат

    Использование позиционирования слоев для макета в три колонки

    Возьмем в качестве примера макет, состоящий из трех колонок разграниченных разделительной линией (рис. 6).

    Рис. 6. Позиционирование слоев для макета в три колонки с разделителем

    Пример: создать веб-страницу с макетом из трех колонок с разделительной линией, изображенную на рис. 6. Использовать приемы фиксированного макетирования с позиционированием слоев

    Выполнение:

    1. Создание структуры html-кода

    • Для данного макета достаточно создать три слоя div для каждой колонки.

    Поэтому структура будет простой:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    <body>
    <div>Иван Бунин</br></br>
    	На окне, серебряном от инея,</br>
    	За ночь хризантемы расцвели.</br> 
    	В верхних стёклах - небо ярко-синее</br> 
    	И застреха в снеговой пыли. 
    </div>
    <div>
    	Всходит солнце, бодрое от холода, </br>
    	Золотится отблеском окно. </br>
    	Утро тихо, радостно и молодо. </br>
    	Белым снегом всё запушено. 
    </div>
    <div>
    	И всё утро яркие и чистые</br> 
    	Буду видеть краски в вышине, </br>
    	И до полдня будут серебристые </br>
    	Хризантемы на моём окне.</br></br> 
     
    	1903
    </div>
    </body>

    <body>
    <div>Иван Бунин</br></br>
    На окне, серебряном от инея,</br>
    За ночь хризантемы расцвели.</br>
    В верхних стёклах — небо ярко-синее</br>
    И застреха в снеговой пыли.
    </div>
    <div>
    Всходит солнце, бодрое от холода, </br>
    Золотится отблеском окно. </br>
    Утро тихо, радостно и молодо. </br>
    Белым снегом всё запушено.
    </div>
    <div>
    И всё утро яркие и чистые</br>
    Буду видеть краски в вышине, </br>
    И до полдня будут серебристые </br>
    Хризантемы на моём окне.</br></br>

    1903
    </div>
    </body>

    2. Добавление стилей для колонок

    • Установим одинаковую ширину колонок (width) и внутренние поля по вертикали и горизонтали (padding).
    • #col1, #col2, #col3 {
           width: 250px; /* Ширина колонок */
           padding: 0 6px; /* Поля по вертикали и горизонтали */
          }

      #col1, #col2, #col3 {
      width: 250px; /* Ширина колонок */
      padding: 0 6px; /* Поля по вертикали и горизонтали */
      }

    • Для удаления блочности слоев, т.е. для того, чтобы расположить их рядом по горизонтали, необходимо задать свойство css float.
    • #col1, #col2, #col3 {
           width: 250px; /* Ширина колонок */
           padding: 0 6px; /* Поля по вертикали и горизонтали */
           float: left; /* Обтекание слоев */
          }

      #col1, #col2, #col3 {
      width: 250px; /* Ширина колонок */
      padding: 0 6px; /* Поля по вертикали и горизонтали */
      float: left; /* Обтекание слоев */
      }

    • Так как разделительная граница должна присутствовать только с внутренних сторон слоев, то рамку необходимо добавить только у двух слоев с одной стороны (border).
    #col1, #col2 {
         border-right: 1px solid #000; /* Параметры линии справа от текста */ 
        }

    #col1, #col2 {
    border-right: 1px solid #000; /* Параметры линии справа от текста */
    }

    Итоговый код: всё вместе

    #col1, #col2, #col3 {
         width: 250px; /* Ширина колонок */
         padding: 0 6px; /* Поля по вертикали и горизонтали */
         float: left; /* Обтекание слоев */
        } 
    #col1, #col2 {
         border-right: 1px solid #000; /* Параметры линии справа от текста */ 
        }

    #col1, #col2, #col3 {
    width: 250px; /* Ширина колонок */
    padding: 0 6px; /* Поля по вертикали и горизонтали */
    float: left; /* Обтекание слоев */
    }
    #col1, #col2 {
    border-right: 1px solid #000; /* Параметры линии справа от текста */
    }

    </style>
    </head> 
    <body>
    <div>Иван Бунин</br></br>
    	На окне, серебряном от инея,</br>
    	За ночь хризантемы расцвели.</br> 
    	В верхних стёклах - небо ярко-синее</br> 
    	И застреха в снеговой пыли. 
    </div>
    <div>
    	Всходит солнце, бодрое от холода, </br>
    	Золотится отблеском окно. </br>
    	Утро тихо, радостно и молодо. </br>
    	Белым снегом всё запушено. 
    </div>
    <div>
    	И всё утро яркие и чистые</br> 
    	Буду видеть краски в вышине, </br>
    	И до полдня будут серебристые </br>
    	Хризантемы на моём окне.</br></br> 
     
    	1903
    </div>
    </body>

    </style>
    </head>
    <body>
    <div>Иван Бунин</br></br>
    На окне, серебряном от инея,</br>
    За ночь хризантемы расцвели.</br>
    В верхних стёклах — небо ярко-синее</br>
    И застреха в снеговой пыли.
    </div>
    <div>
    Всходит солнце, бодрое от холода, </br>
    Золотится отблеском окно. </br>
    Утро тихо, радостно и молодо. </br>
    Белым снегом всё запушено.
    </div>
    <div>
    И всё утро яркие и чистые</br>
    Буду видеть краски в вышине, </br>
    И до полдня будут серебристые </br>
    Хризантемы на моём окне.</br></br>

    1903
    </div>
    </body>

    Дизайн в три колонки готов!

    labs-org.ru

    Блочная верстка — css-свойства, которые нужны для оформления блоков

    От автора: приветствую вас на страницах блога webformyself. Блочная верстка – самый популярный сегодня способ создать шаблон сайта. И таковым он будет оставаться видимо еще долгое время. В связи с этим давайте разбираться, как осуществляется блочная верстка css-свойствами.

    Где создаются блоки

    Для начала нужно понять, что css не создает блоки – он оформляет их. Сами по себе они формируются в HTML – языке разметки гипертекста. По умолчанию блок по высоте будет занимать место, равное высоте его содержимого. По ширине же он займет все доступное пространство, которое есть в родителе.

    Для примера: если ширина родительского контейнера составляет 300 пикселей и в нем создан блок, то он тоже будет занимать такую ширину (только если у родителя не заданы отступы). Все остальные элементы, которые будут создаваться в контейнере, не могут стоять на одной линии с первым блоком и будут перенесены дальше.

    Обычный пустой блочный элемент записывается с помощью парного тега — div. Сам по себе он ничего не делает. Например, давайте вспомним, что многие теги имеют определенный смысл: абзац является частью какого-то текста, подзаголовки нужны для улучшения навигации и восприятия и т.д. А вот тег div выступает просто контейнером.

    Привычная блочная модель

    В своем обычном поведении несколько созданных блоков будут идти сверху вниз друг за другом. Здесь сразу же наблюдается серьезная проблема, не так ли? А как же сделать боковую колонку, как, в конце концов, делают сайты, на которых в одной строке идет 3-5 анонсов новостей, да еще и с картинками? Вот тут нам и приходит на помощь css, с помощью которого расставить элементы на странице можно абсолютно любым образом.

    Практический курс по верстке адаптивного сайта с нуля!

    Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3

    Узнать подробнее

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

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

    Давайте сначала разберемся с размерами. В css размеры элементам можно записывать с помощью свойств width и height. Зачастую значения задают в пикселях, хотя иногда в процентах или других относительных единицах.

    Вот давайте представим, что есть большой родительский контейнер и в нем есть какой-то блочный элемент. Чтобы определить для него свойства через таблицу стилей, нужно как-то к нему обратиться. Если мы запишем так:

    То абсолютно все блоки получат такую ширину, что нам явно не нужно. Значит, нужно добавить к блоку стилевой класс или идентификатор. Они добавляются с помощью атрибутов class и id, а значением выступает произвольное имя, но начинаться оно должно с английской буквы. Разрешается использовать также цифры, дефис и знак нижнего подчеркивания. Обычно самые важные элементы на странице получают идентификатор (шапка, контент, подвал), а менее важные (пункты меню, заголовки и т.д.) стилевые классы.

    Я бы даже сказал, что дело не в важности, а в том, уникальный ли это элемент. Понятно, что двух шапок на сайте в принципе быть не может (я имею ввиду главную шапку вверху сайта), а вот пунктов меню может быть сколько угодно.

    Самое главное, это запомнить – идентификатор задается одному элементу, один раз и больше не может записываться ни для какого другого элемента. Это уникальная метка. Стилевой класс можно записывать хоть сотне элементов, а одному блоку можно через пробел задать сколько угодно классов. Вот так:

    <div class = «width height border»>Блок с тремя классами</div>;

    <div class = «width height border»>Блок с тремя классами</div>;

    И как вы думаете, что теперь с ним произойдет, когда мы запишем такие свойства?

    .width{
    width: 250px;
    }
    .height{
    height: 250px;
    }
    .border{
    border: 10px solid green;
    }

    .width{

    width: 250px;

    }

    .height{

    height: 250px;

    }

    .border{

    border: 10px solid green;

    }

    К блоку применятся все эти правила и теперь какому бы элементу вы не задали, например, класс border, он получит толстую зеленую рамку в 10 пикселей.

    Практический курс по верстке адаптивного сайта с нуля!

    Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3

    Узнать подробнее

    Несколько блоков на одной линии

    Далее я коротко расскажу о двух важных свойствах, которые позволят блокам располагаться в одну линию. Сразу пример: есть контейнер шириной 1000 пикселей. Ваша задача – впихнуть в него 3 блока шириной по 300 пикселей, чтобы они располагались на одной горизонтальной линии. Как это сделать? Есть два способа.

    Во-первых, каждому блоку нужно задать класс. Вообще некоторые разработчики добавляют блочным элементам общие классы:

    <div class = «block1 inline»></div>
    <div class = «block2 inline»></div>
    <div class = «block3 inline»></div>

    <div class = «block1 inline»></div>

    <div class = «block2 inline»></div>

    <div class = «block3 inline»></div>

    Таким образом, каждый элемент может быть оформлен по-своему, но все они могут получить одинаковые указания, потому что все содержат класс inline. А в нем мы можем записать так:

    .inline{
    display: inline-block;
    }

    .inline{

    display: inline-block;

    }

    Либо так:

    Первое свойство преобразовывает элементы в строчно-блочные. Они не теряют своих свойств, но могут располагаться в линию, если им хватает ширины в родителе.

    Второе свойство прижимает каждый элемент к левому краю родительского контейнера. Но поскольку второй и третий элементы не могут прижаться к самому краю, они встанут за первым и тоже образуют линию.

    Относительные размеры

    Как делается в css блочная верстка резинового сайта? Такой шаблон имеет большое преимущество перед фиксированным, потому что может меняться в зависимости от ширины окна. Делается он в основном по такому принципу: общий элемент контейнер получает фиксированную ширину, а уже в нем помещаются структурные части, которым размер пишется в процентах.

    <div id = «wrapper»>
    <div id = «content»></div>
    <div id = «sidebar»></div>
    </div>

    #wrapper{
    max-width: 1000px;
    }
    #content{
    width: 66%;
    }
    #sidebar{
    width: 26%;
    }

    <div id = «wrapper»>

    <div id = «content»></div>

    <div id = «sidebar»></div>

    </div>

     

    #wrapper{

    max-width: 1000px;

    }

    #content{

    width: 66%;

    }

    #sidebar{

    width: 26%;

    }

    Вот так вот это все примерно реализовывается. Оставшиеся 8% ширины оставим на отступы, допустим. Наш шаблон уже получит определенную адаптивность – он будет сжиматься при уменьшении ширины окна в браузере.

    Конечно, до адаптивной верстки здесь далеко, но такие правила закладывают основание для нее. Далее с помощью медиа-запросов вы можете управлять тем, на какой ширине превратить шаблон в одноколоночный, где и когда уменьшить ширину и т.д. и т.п.

    На этом на сегодня я хотел бы закончить. Больше информации о блочной верстке вы можете получить из наших премиум-уроков, в частности из учебника по css для начинающих, где описываются основные свойства, которые нужно знать при работе с блочными элементами.

    Практический курс по верстке адаптивного сайта с нуля!

    Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3

    Узнать подробнее

    PSD to HTML

    Верстка сайта на HTML5 и CSS3 с нуля

    Смотреть

    webformyself.com

    Структура блочной вёрстки

    Вы здесь:
    Главная — HTML — HTML Основы — Структура блочной вёрстки


    Наиболее часто встречающаяся вёрстка — блочная. Однако, не все правильно верстают блоками, в основном, это те, кто делает это впервые. Как показывает практика, такие новички долго мучаются с первой блочной вёрсткой, а уже последующие им даются гораздо легче, так как они уже знают структуру блочной вёрстки. И чтобы облегчить немного жизнь новичкам, я в данной статье покажу уже готовую структуру блочной вёрстки.

    Привожу HTML-код:


    <!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>

      <title>Заголовок страницы</title>

      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

      <meta name="description" content="Описание страницы." />

      <meta name="keywords" content="ключевые слова страницы" />

      <link href="css/styles.css" rel="stylesheet" type="text/css" />

    </head>

    <body>

      <div>Шапка сайта</div>

      <div>

        <div>Левые блоки</div>

        <div>Правые блоки</div>

        <div>Центральная часть</div>

      </div>

      <div></div>

      <div>Содержимое подвала</div>

    </body>

    </html>

    И CSS-код:


    #left {

      float: left; // Левые блоки размещаем слева

      width: 200px; // Установка ширины 200 пикселей

    }

    #right {

      float: right; // Правые блоки размещаем справа

      width: 200px; // Установка ширины 200 пикселей

    }

    #center {

      margin-left: 200px; // Отступ слева 200 пикселей

      margin-right: 200px; // Отступ справа 200 пикселей

    }

    .clear {

      clear: both; // Отменяем позиционирование (влияние float)

    }

    Эту структуру Вы можете смело копировать на свой сайт. Безусловно, некоторые элементы можно менять. Например, размеры левых и правых блоков. Соответственно, надо будет поменять и отступы у центрального блока. Также если вёрстка фиксированная, или она не должна растягиваться на всю страницу, то необходимо все блоки добавить в другой, самый верхний, у которого задать фиксированную ширину в пикселях (фиксированная вёрстка) или в процентах (резиновая, но не на всю страницу).

    Надеюсь, данная структура блочной вёрстки поможет новичкам с минимальным количеством проблем сверстать свою первую страницу блоками.


    • Создано 01.06.2012 12:27:27



    • Михаил Русаков

    Предыдущая статья Следующая статья

    Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

    Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):


    1. Кнопка:

      <a href=»https://myrusakov.ru» target=»_blank»><img src=»https://myrusakov.ru//images/button.gif» alt=»Как создать свой сайт» /></a>

      Она выглядит вот так:


    2. Текстовая ссылка:
      <a href=»https://myrusakov.ru» target=»_blank»>Как создать свой сайт</a>

      Она выглядит вот так: Как создать свой сайт

    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

      [URL=»https://myrusakov.ru»]Как создать свой сайт[/URL]

    myrusakov.ru

    Отправить ответ

    avatar
      Подписаться  
    Уведомление о