Перейти к основному содержимому

Элементы и техники макета HTML

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


Элементы макета HTML

В HTML есть несколько семантических элементов, обозначающих части страницы: <header> (заголовок документа или раздела), <nav> (набор навигационных ссылок), <section> (раздел), <article> (независимый, самодостаточный контент), <aside> (боковое содержимое, например боковая панель), <footer> (подвал), <details> (дополнительные детали, которые пользователь может открыть и закрыть), и <summary> (заголовок для <details>). Подробнее можно прочитать в главе о семантике HTML.


Техники макета HTML

Есть четыре распространённых способа создания многоколоночных макетов, у каждого свои плюсы и минусы: CSS-фреймворки, CSS-свойство float, CSS flexbox и CSS grid.


CSS-фреймворки

Чтобы быстро создать макет, можно использовать CSS-фреймворк, например Bootstrap.


Макет CSS с Float

Можно создавать целые макеты с помощью CSS-свойства float. Float легко изучить; нужно лишь понять, как работают float и clear. Недостаток: элементы с обтеканием привязаны к потоку документа, что может снижать гибкость.

Пример

Многоколоночный макет, созданный с помощью float.

Prompt
Многоколоночная структура страницы, построенная с помощью CSS-свойства float: заголовок, левая колонка навигации со списком Лондон, Париж и Токио, основная область содержимого о Лондоне и подвал, который сбрасывает обтекание (clear).
Вывод: полная HTML-страница

Макет CSS с Flexbox

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

Пример

Тот же макет, созданный с помощью flexbox.

Prompt
Та же структура страницы Cities, построенная с помощью CSS flexbox: flex-контейнер, содержащий колонку навигации и основную область содержимого о Лондоне, с заголовком сверху и подвалом снизу.
Вывод: полная HTML-страница

Макет CSS с Grid

Модуль компоновки CSS Grid предоставляет систему на основе сетки из строк и столбцов, упрощая проектирование страниц без float или позиционирования. Подробнее можно узнать в главе о CSS Grid.