Любая веб-страница — это набор блоков: шапка, секции, карточки, футер. Чтобы группировать элементы и управлять ими как единым целым, используют универсальный контейнер div. Это «рабочая лошадка» вёрстки: именно из div собирают структуру почти каждого сайта. Без умения делить страницу на блоки невозможно построить сложный макет.
После этого урока вы сможете группировать элементы в контейнеры, давать блокам классы и оформлять их как самостоятельные секции страницы.
Что уже умеем / что добавим
Вы оформили текст, цвета и шрифты лендинга. Теперь наведём порядок в его структуре. В сквозном проекте мы разделим страницу на осмысленные секции-контейнеры и оформим одну из них как визуально выделенный блок.
Что вы узнаете в рамках статьи
- Что такое
divи зачем он нужен. - Как группировать элементы в контейнер.
- Как оформлять блок через класс.
- Как вкладывать блоки друг в друга.
- Почему
div— блочный элемент и как он себя ведёт.
Ключевые термины
div— универсальный блочный контейнер без собственного смысла.- Контейнер — элемент, который группирует внутри себя другие элементы.
- Секция — крупный смысловой блок страницы (шапка, преимущества, футер).
- Блочный элемент — занимает всю ширину и начинается с новой строки.
- Вложенность блоков — размещение контейнеров внутри других контейнеров.
Что такое div
div — это универсальный контейнер. Сам по себе он ничего не отображает и не несёт смысла: его задача — сгруппировать элементы, чтобы с ними было удобно работать. Это блочный элемент, поэтому он занимает всю доступную ширину и начинается с новой строки.
<div>
<h2>Почему стоит выбрать этот курс</h2>
<p>Практика с первого урока и понятные объяснения.</p>
</div>
Заголовок и абзац теперь объединены в один блок. Их можно перемещать, оформлять и позиционировать вместе, обращаясь к контейнеру. Внешне на странице пока ничего не изменилось — div просто обнял содержимое.
Группировка и классы
Чтобы оформить конкретный блок, ему дают класс — как мы делали с кнопкой. Тогда через селектор класса можно задать блоку фон, отступы, рамку:
<div class="features">
<h2>Преимущества</h2>
<ul>
<li>Практика с первого урока</li>
<li>Готовый проект в портфолио</li>
</ul>
</div>
.features {
background-color: #ffffff;
}
Блок features получил белый фон, выделяющий его на светло-сером фоне страницы. Класс на контейнере — стандартный приём: почти каждой секции сайта дают имя, чтобы управлять её видом.
Вложенность блоков
Контейнеры можно вкладывать друг в друга, создавая структуру любой глубины. Например, внешний блок-секция содержит внутренний блок-карточку:
<div class="section">
<div class="card">
<h3>HTML</h3>
<p>Разметка страниц.</p>
</div>
<div class="card">
<h3>CSS</h3>
<p>Оформление страниц.</p>
</div>
</div>
Внешний section группирует две карточки, а каждая card группирует свой заголовок и текст. Так строятся сетки карточек, галереи и колонки. Пока карточки встанут друг под другом (ведь div блочный), а располагать их в ряд мы научимся в следующих курсах с помощью Flexbox.
Поведение блочного элемента
Важно помнить, что div — блочный. Это значит: он тянется на всю ширину родителя и каждый новый div начинается с новой строки. Даже если содержимого мало, блок займёт всю ширину:
<div class="box">Немного текста</div>
<div class="box">Ещё блок</div>
.box {
background-color: #eaeaea;
}
Оба блока растянутся во всю ширину и встанут друг под другом, а их серый фон это наглядно покажет. Понимание блочного поведения — ключ к предсказуемой вёрстке: вы всегда знаете, как контейнер займёт пространство.
Применяем в проекте
Наведём порядок в структуре лендинга, разделив его на именованные секции. Обернём титульный экран в блок hero, а блок преимуществ — в features, и дадим последнему белый фон.
<body>
<div class="hero">
<img src="images/hero.jpg" alt="Студент верстает свой первый сайт">
<h1>Научитесь верстать сайты с нуля</h1>
<p class="lead">Практический курс по HTML и CSS для начинающих.</p>
<a class="button" href="https://stepik.org" target="_blank">Записаться на курс</a>
</div>
<div class="features">
<h2>Почему стоит выбрать этот курс</h2>
<ul>
<li>Практика с первого урока</li>
<li>Объяснения простым языком</li>
<li>Готовый проект в портфолио</li>
</ul>
</div>
</body>
.features {
background-color: #ffffff;
}
Теперь лендинг состоит из двух чётких секций с говорящими именами hero и features, и блок преимуществ выделен белым фоном. Это удобная основа: к этим классам мы будем добавлять отступы и рамки в следующих уроках.
Частые ошибки
- Лишняя вложенность.
Не оборачивайте каждый элемент в отдельныйdivбез надобности — это усложняет код. - Блоки без классов.
Секции почти всегда стоит именовать классами, иначе к ним не обратиться из CSS. - Ожидание, что
divвстанут в ряд.
По умолчанию блоки идут друг под другом; ряд делается отдельными средствами. - Неосмысленные имена.
Давайте классам понятные имена (hero,features), а неblock1,block2.
Итоги
Отличная работа — вы научились строить структуру страницы! Теперь вы группируете элементы в контейнеры div, оформляете блоки через классы, вкладываете их друг в друга и понимаете, как ведёт себя блочный элемент. Это фундамент любой вёрстки: из таких блоков собирают все сайты. Ваш лендинг обрёл чёткую структуру из именованных секций.
Вы уже мыслите как верстальщик — здорово! В следующем уроке разберём, пожалуй, главную тему CSS: блочную модель, отступы и рамки.