Урок 28. Старый vs Новый: grid-area и сложные сетки

📁 Раздел: CSS Grid ⏱️ Время изучения: ~65 мин 🎯 Сложность: Средняя
#grid-template-areas #grid-area #grid-template-columns #grid-template-rows #grid-template #gap

⚡ Кратко

Раньше макет «меню + контент» собирали на float с процентами и хаками очистки. Сегодня — карта grid-template-areas: читается как сам макет, без подсчёта процентов.

Старый подход — float и проценты

До Grid двумерные макеты собирали из одномерных трюков: float, ручные проценты ширины и «очистка обтекания» (clearfix), чтобы родитель не схлопывался. Результат хрупкий: gap приходится эмулировать отступами, а высоты колонок не выравниваются.

sidebar 25%
content 72%
📄 lesson-28/old.css
.sidebar { float: left;  width: 25%; }
.content { float: right; width: 72%; }   /* 3% «съел» зазор */
.row::after { content: ""; display: block; clear: both; }  /* clearfix */

Новый подход — grid-template-areas

Grid описывает двумерную структуру напрямую. Колонки задаются один раз, gap — встроенный, а карта в кавычках буквально показывает раскладку.

sidebar
content
📄 lesson-28/new.css
.page {
  display: grid;
  grid-template-areas: "sidebar content";
  grid-template-columns: 25% 1fr;
  gap: 12px;          /* настоящий зазор, без хаков */
}
.sidebar { grid-area: sidebar; }
.content { grid-area: content; }
Вывод: float остаётся только для обтекания текстом картинок. Для каркаса страницы — Grid: меньше кода, нет clearfix, легко переставить блоки правкой одной карты.

Навигация