CSS Academy · Урок

Компоновка «священный грааль» с Grid

Реализуйте классическую компоновку «священный грааль» с заголовком, подвалом, основной областью и двумя боковыми панелями с помощью CSS Grid.

Урок 2 из 413 шагов

«Компоновка «священный грааль» с 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 — локальная установка не требуется.

Все уроки этого курса

  1. Компоновка с фиксированными подвалом и боковой панелью
  2. Компоновка «священный грааль» с Grid
  3. Каменная кладка: подходы на CSS и JS
  4. Внутренняя компоновка: размеры по содержимому
← Назад к CSS Academy