Введение в верстку DIV’ами – CSS box model
В начале я решил опубликовать небольшой урок для новичков по CSS кодингу, так как сам в последнее время в основном верстаю DIV’ами, а не таблицами, как раньше.
Существует два типа верстки – таблицами и div’ами. Первый способ чаще всего применялся, но в последнее время все чаще применяется верстка дивами. Это намного быстрее, эффективнее и более модно
В начале рассмотрим сам тег <div></div> и его CSS свойства. В интернете эта структура называется BOX MODEL – коробочная модель.
Зачем все это? Далее я буду писать уроки верстки, если вы не знаете что такое CSS и тег DIV вам не обойтись без этой информации просто никак.
При помощи тега DIV мы можем аккуратно оформить любой элемент веб-страницы, так как у него много свойств – margin (граница), padding (отступ), border (рамка) и outline (внешняя линия). Вот пример.

Как вы видите на рисунке всего четыре отступа, да да – при помощи всех четырех элементов можно создать отступы, придав каждому элементу разный цвет.
CSS свойства тега DIV
Margin – граница, с помощью свойства margin мы может сделать отступ блока от внешних элементов, например при трехколоночной верстке сайта.
Padding – отступ внутри дива, можем задать например рамку и отступ текста от нее.
Border – при помощи этого свойства мы можем задать рамку вокруг текста или рисунка не только прямую линию, но а также штрих-пунктирную и другие, цвет рамки.
Outline – вроде border, применяется редко, я использую это свойство для совсем другого элемента.
Width – ширина элемента.
Height – высота элемента.
Примеры на практике
Теперь немного попрактикуемся. Вот пример. при помощи всех этих элементов можно красиво оформлять рисунки, блоки текста и много чего другого.
border: 3px solid white;
margin: 30px;
padding: 15px;
width: 260px;
background-color: blue;
outline-color: #454545;
outline-style: solid;
outline-width: 1px;
В этом примере я использовал рамку – она белая толщиной 3 пикселя, наружную рамку outline шириной 1 пиксель, граница margin 30 пикселей, отступ padding 15 пикселей, ширина блока width 300 пикселей, цвет фона светло-голубой.
А теперь пример оформления блока сайта с заголовком, я использую такие приемы при верстке шаблонов для DLE.
Вот какой код я использовал, чтобы добиться такого эффекта для заголовка блока
1 2 3 4 5 6 7 8 | border: 1px solid #454545; //рамка, комбинировал три свойства width: 300px; //ширина блока height: 25px; // высота блока color: #ffffff; //цвет текста в блоке font-size: 18px; // размер текста в блоке text-align: center; // выравнивание текста по центру background-color: #4caac8; // цвет фона блока padding-top: 4px; // отступ сверху для выравнивания |
Этот код для оформления блока текста, который вы видите под блоком заголовка
1 2 3 4 5 6 7 8 9 | border-left: 1px solid #454545; // рамка слева border-right: 1px solid #454545; // рамка справа border-bottom: 1px solid #454545; // рамка снизу padding: 7px; // отступ текста от рамки width: 286px; // ширина блока текста color: #333333; // цвет текста font-size: 18px; // размер шрифта text-align: justify; // выравнивание текста по ширине background-color: lightblue; // цвет фона блока текста |
Подводные камни, ошибки новичков
Некоторые новички, как и я раньше, частенько ошибаются при верстке html страниц при помощи CSS. Где же подводные камни при верстке дивами?
Вы заметили, что ширина блока заголовка 300 пикселей, а ширина блока текста всего 286 пикселей? Вот это и есть подводные камни.
Все дело в том, что ширина блока состоит из нескольких составляющих
1 | width + padding-left + padding-right + border-left + border-right |
Высота блока соответственно
1 | height + padding-top + padding-bottom + border-top + border-bottom |
Вот мы и имеем – 300 пикселей вычесть отступ слева 7 пикселей, вычесть отступ справа 7 пикселей = 286 пикселей. А рамка и там и там одинаковая, поэтому мы не берем ее в расчет.
Помните свойством padding:7px мы скомбинировали все четыре составляющие padding-left, padding-right, padding-top, padding-bottom – все они по 7 пикселей.
Ну вот в принципе и все, что требуется знать при верстке DIV’ами. Удачи вам, ждите следующие уроки.
С уважением, Заводской раб.
Узнайте, как плести красивые фенечки для девочек, плетем стильные фенечки из мулине.
Pogodka.net – точная погода в странах СНГ.




(3 votes, average: 5,00 out of 5)
13 comments
Перспективный блоггер says:
Янв 25, 2010
Можно также добавить, что div по умолчанию тянется на 100% ширины родительского контейнера, и если ему не задавать принудительно width, то padding+margin+border не будут плюсоваться поверх 100% ширины блока по умолчанию, и именно это свойство дива резоннее всего использовать для большей универсальности сверстанных блоков.
К примеру, в последнем примере блоки заголовка и контента можно было обернуть в дополнительный див, которому прописать width: 300px, а сами же блоки заголовка и контента оставить без указания ширины, чтобы оба они вне зависимости от своих border/padding/margin растянулись на 100%, т.е. 300px внутри контейнера-обертки (так называемый wrapper). Таким образом мы получаем +1 к уровню вложенности, но избавляем себя от необходимости каждый раз прописывать по 2 разных width’a на див-заголовок и див-контент. Если нам нужна будет другая ширина этого блока, достаточно будет изменить только ширину блока-обертки.
Также отличительным преимуществом применения дивов против таблиц является то, что их уровень вложенности не влияет на скорость загрузки страницы в отличие от таблиц, где перед тем, как браузер начнет отрисовывать ячейки, он сначала должен расчитать полностью всю таблицу, что увеличивает время до того, как мы начнем наблюдать рисунок на экране.
Арни Веб Дизайн says:
Янв 26, 2010
Насчет обертки дополнительным дивом это точно, но иногда приходится жертвовать этим для того чтобы визуально определить заголовок и тело блока в DLE шаблоне.
Просто неопытные веб-мастера, которым я делал шаблоны не всегда могут определить какой участок кода размножать, чтобы добавить новые блоки. А так получается всего 2 дива
Арни Веб Дизайн says:
Янв 26, 2010
Насчет таблиц – также правильно, это можно заметить даже при загрузки страницы на маленькой скорости. При верстке таблицами контент подгружается и выводится как бы весь сразу.
А при верстке дивами сначала может отобразиться левая контентная часть блога, а потом подгрузиться правый сайдбар.
Перспективный блоггер says:
Янв 26, 2010
для того, чтобы было виднее, какую часть кода нужно размножать, нужно придерживаться лесенки, давать понятные названия классов и писать комменты. Я лично делаю приблизительно так:
<div class=»box-wrapper»>
<div class=»box-header»></div>
<div class=»box-content»></div>
</div> <!– box-wrapper END –>
Обычно у клиентов вопросов не возникает.
Tweets that mention Введение в верстку DIV'ами - CSS box model | Блог о веб дизайне, уроки веб дизайна -- Topsy.com says:
Янв 26, 2010
[...] This post was mentioned on Twitter by Кочнев Илья, Arni. Arni said: Введение в верстку DIV’ами – CSS box model: В начале я решил опубликовать небольшой урок для… http://goo.gl/fb/8LJT [...]
Logunoff says:
Янв 29, 2010
Арни Веб Дизайн:
При верстке дивами контент также подгружается сразу. Эффект поздней подгрузки сайдбара возникает потому, что его позиционирование задано в css-файле, который на медленном соединении подгружается позже вывода блоков.
Арни Веб Дизайн says:
Янв 29, 2010
Это я и имел в виду.
Joker says:
Фев 8, 2010
Спасибо за статью. Пора уже самому учиться верстать и лучше разбираться в коде. Ато друг меня наверное уже ненавидит, за то, что я его всегда достаю)
Настя says:
Фев 19, 2010
Спасибо за блог. Пишите еще, благодаря вашей записи про создание макета с нуля нарисовала свой первый дизайн))
MakLeR says:
мая 12, 2010
Эх, хорошо, что попал сюда! Как раз набираю материал для того, чтобы сверстать свою первую тему для блога! Жду следующих уроков!
виталик says:
Авг 23, 2010
Спасибо ..за хороший матерьяльчик!
Владимир says:
Мар 17, 2011
Весьма признателен за урок. Очень помогло в понимании DIV!
Alexey says:
Мар 21, 2011
Таблицы иногда все же приходится использовать, например для вывода табличных данных. Для увеличения скорости загрузки достаточно в CSS прописать table {table-layout: fixed;}. Браузер начнет отображение после расчета первой строки.