Введение в верстку 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’ами. Удачи вам, ждите следующие уроки.
С уважением, Заводской раб.





1 месяц назад
Можно также добавить, что div по умолчанию тянется на 100% ширины родительского контейнера, и если ему не задавать принудительно width, то padding+margin+border не будут плюсоваться поверх 100% ширины блока по умолчанию, и именно это свойство дива резоннее всего использовать для большей универсальности сверстанных блоков.
К примеру, в последнем примере блоки заголовка и контента можно было обернуть в дополнительный див, которому прописать width: 300px, а сами же блоки заголовка и контента оставить без указания ширины, чтобы оба они вне зависимости от своих border/padding/margin растянулись на 100%, т.е. 300px внутри контейнера-обертки (так называемый wrapper). Таким образом мы получаем +1 к уровню вложенности, но избавляем себя от необходимости каждый раз прописывать по 2 разных width’a на див-заголовок и див-контент. Если нам нужна будет другая ширина этого блока, достаточно будет изменить только ширину блока-обертки.
Также отличительным преимуществом применения дивов против таблиц является то, что их уровень вложенности не влияет на скорость загрузки страницы в отличие от таблиц, где перед тем, как браузер начнет отрисовывать ячейки, он сначала должен расчитать полностью всю таблицу, что увеличивает время до того, как мы начнем наблюдать рисунок на экране.
1 месяц назад
Насчет обертки дополнительным дивом это точно, но иногда приходится жертвовать этим для того чтобы визуально определить заголовок и тело блока в DLE шаблоне.
Просто неопытные веб-мастера, которым я делал шаблоны не всегда могут определить какой участок кода размножать, чтобы добавить новые блоки. А так получается всего 2 дива
1 месяц назад
Насчет таблиц – также правильно, это можно заметить даже при загрузки страницы на маленькой скорости. При верстке таблицами контент подгружается и выводится как бы весь сразу.
А при верстке дивами сначала может отобразиться левая контентная часть блога, а потом подгрузиться правый сайдбар.
1 месяц назад
для того, чтобы было виднее, какую часть кода нужно размножать, нужно придерживаться лесенки, давать понятные названия классов и писать комменты. Я лично делаю приблизительно так:
<div class=”box-wrapper”>
<div class=”box-header”></div>
<div class=”box-content”></div>
</div> <!– box-wrapper END –>
Обычно у клиентов вопросов не возникает.
1 месяц назад
Арни Веб Дизайн:
При верстке дивами контент также подгружается сразу. Эффект поздней подгрузки сайдбара возникает потому, что его позиционирование задано в css-файле, который на медленном соединении подгружается позже вывода блоков.
1 месяц назад
Это я и имел в виду.
4 недель назад
Спасибо за статью. Пора уже самому учиться верстать и лучше разбираться в коде. Ато друг меня наверное уже ненавидит, за то, что я его всегда достаю)
2 недель назад
Спасибо за блог. Пишите еще, благодаря вашей записи про создание макета с нуля нарисовала свой первый дизайн))