Компоновка «священный грааль» с Grid
Реализуйте классическую компоновку «священный грааль» с заголовком, подвалом, основной областью и двумя боковыми панелями с помощью CSS Grid.
«Компоновка «священный грааль» с Grid» — бесплатный урок CSS Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения CSS Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс CSS Academy содержит 4 уроков всего.
Что такое макет «Святой Грааль»
Макет «Святой Грааль» — классический шаблон веб-дизайна: страница на всю высоту с шапкой, нижним колонтитулом и центральной секцией из трёх столбцов (левая боковая панель, основное содержимое, правая боковая панель). Раньше создать его с помощью плавающих элементов было крайне сложно, но CSS-сетка делает это тривиальным.
Определение шаблона сетки
Определите макет с именованными областями и строками шаблона: grid-template-areas отображает визуальную структуру. Три столбца и три строки (шапка занимает все столбцы, нижний колонтитул занимает все столбцы, в средней части находятся три столбца) описывают весь макет в удобной для чтения ASCII-диаграмме.
<header>Header</header>
<div class="sidebar">Sidebar</div>
<main>Main</main>
<aside>Aside</aside>
<footer>Footer</footer>Назначение элементов областям
Каждый дочерний элемент ссылается на свою область по имени: header { grid-area: header }, main { grid-area: main }, nav { grid-area: sidebar }, aside { grid-area: aside }, footer { grid-area: footer }. Сетка размещает их автоматически.
Расширение средней строки
Средняя строка использует 1fr, который заполняет всю оставшуюся высоту области просмотра после шапки и нижнего колонтитула фиксированной высоты. Благодаря этому боковые панели и основное содержимое всегда растягиваются на всю высоту области просмотра — явные вычисления высоты не нужны.
Адаптивное сворачивание
На мобильных устройствах с помощью медиазапроса переопределите grid-template-areas, задав стек из одного столбца: шапка, боковая панель, основное содержимое, боковая область и нижний колонтитул, расположенные вертикально. Порядок DOM сохраняется, меняется только визуальный шаблон сетки. Области сетки делают адаптивную перестройку понятной.
<header>Header</header>
<div class="sidebar">Sidebar</div>
<main>Main</main>
<aside>Aside</aside>
<footer>Footer</footer>Адаптивное скрытие боковых панелей
На планшетах удалите правую боковую область и расширьте основное содержимое: переопределите шаблон как "header header" "sidebar main" "footer footer" с помощью grid-template-columns: 240px 1fr. Задайте aside { display: none } или переместите боковую область под основное содержимое в определении областей.
Промежутки и внутренние отступы
Добавьте промежуток между дорожками сетки: gap: var(--spacing-4). Применяйте внутренние отступы внутри каждой области, а не к контейнеру сетки, чтобы сохранить единообразное расстояние. Шапка и нижний колонтитул обычно получают собственные горизонтальные отступы, соответствующие выравниванию сетки по максимальной ширине.
Вложенные сетки
Область основного содержимого сама может быть сеткой — статья в двух столбцах и боковая панель внутри основной области. Вложенные сетки создают раскладку содержимого внутри оболочки страницы без сложных иерархий классов или глубоко вложенного позиционирования.
Прилипающая шапка
Сделайте шапку прилипающей: header { position: sticky; top: 0; z-index: 10; }. В макете сетки прилипающее позиционирование дочернего элемента сетки работает ожидаемым образом: шапка остаётся на месте, пока основное содержимое, боковая панель и боковая область прокручиваются под ней.
Прилипающие боковые панели в макете «Святой Грааль»
Обе боковые панели могут быть прилипающими: nav, aside { position: sticky; top: 0; height: 100vh; overflow-y: auto; }. Они остаются видимыми, пока прокручивается основное содержимое, создавая макет из трёх панелей, в котором прокручивается только центральная область.
Сетка и флексбокс для макета страницы
Используйте сетку CSS для двумерных макетов оболочки страницы, таких как макет «Святой Грааль»: сетка отлично подходит для одновременного размещения элементов в именованных строках и столбцах. Используйте флексбокс для одномерных макетов компонентов (элементы навигации в строке, содержимое карточки в столбце) внутри областей сетки.
Проверка знаний
Что делает свойство grid-template-areas особенно полезным для адаптивных макетов «Святой Грааль»?
Итоги
CSS-сетка делает исторически сложный макет «Святой Грааль» тривиальным: grid-template-areas задаёт имена областям, 1fr для средней строки заполняет высоту области просмотра, а медиазапросы переопределяют карту областей для адаптивного сворачивания. Прилипающие шапки и боковые панели добавляются без лишней сложности.
Изучай CSS с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 40
- Уроки
- 159
Часто задаваемые вопросы
Урок «Компоновка «священный грааль» с Grid» бесплатный?
Да — полный текст урока «Компоновка «священный грааль» с Grid» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс CSS Academy, подпишись на CoddyKit PRO. Курс CSS Academy содержит 4 уроков всего.
Чему я научусь в уроке «Компоновка «священный грааль» с Grid»?
Реализуйте классическую компоновку «священный грааль» с заголовком, подвалом, основной областью и двумя боковыми панелями с помощью CSS Grid. Ты практикуешь CSS Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать CSS Academy?
Предыдущий опыт не требуется. CSS Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Компоновка «священный грааль» с Grid»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке CSS Academy?
Да. Каждый урок CSS Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Компоновка с фиксированными подвалом и боковой панелью
- Компоновка «священный грааль» с Grid
- Каменная кладка: подходы на CSS и JS
- Внутренняя компоновка: размеры по содержимому