Загрузка...

Grid в CSS

Flexbox выстраивал элементы в одном направлении. CSS Grid открывает следующую главу: строки и колонки вместе. Включите display: grid, набросайте дорожки (tracks), добавьте gap — а глубже пойдёте в уроках Grid Container, Items, Areas и Responsive.

Стартовый набор инструментов Grid

📊 Grid одним взглядом

Идея Повседневная роль
Контейнер Grid Родитель с display: grid (или inline-grid)
Элементы Grid Прямые потомки, которые садятся в сетку
Дорожки (tracks) Строки и колонки, образующие решётку
Ячейки / области Места, куда попадают элементы (области — в следующем уроке)
gap Промежутки между дорожками без трюков с margin
Единица fr Делить оставшееся место между дорожками (превью)

Думайте о Grid как о миллиметровке для страницы: сначала рисуете колонки и строки, потом кладёте контент в ячейки. Flexbox по-прежнему отличен для панелей инструментов и одноосных групп.

display: grid — включить решётку

Поставьте display: grid на родителе. Дети становятся элементами сетки автоматически — для базовой модели лишний класс не нужен.

Базовый контейнер grid

css
.board {
display: grid;
}

Сначала колонки — простой шаблон

grid-template-columns задаёт вертикальные дорожки. Три равные колонки — спокойный стартовый набросок для карточек или плиток.

Три равные колонки

css
.board {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
}

gap — честные промежутки

Используйте gap (или row-gap / column-gap), чтобы отступы оставались ровными при перестроении дорожек. Лучше gap, чем размазывать margin по каждому ребёнку.

Grid с gap

css
.board {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1rem;
}

Небольшая матрица карточек

Та же идея, что эскиз галереи — равные дорожки плюс gap — но теперь вы говорите на языке Grid, а не только flex-wrap.

Матрица карточек

css
.cards {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1.25rem;
}

.cards__item {
min-height: 8rem;
}

fr — делим свободное место

Единица fr делит свободное пространство между дорожками. 2fr 1fr делает первую колонку вдвое шире второй, когда место остаётся.

Неравные колонки fr

css
.shell {
display: grid;
grid-template-columns: 2fr 1fr;
gap: 1.5rem;
}

Спокойная привычка Grid

Используйте Grid для двумерных оболочек страницы и матриц. Используйте Flexbox для одномерных рядов. Начните с display: grid, простого grid-template-columns и gap. Глубокую авторасстановку, именованные области и адаптивные дорожки Grid оставьте следующим урокам.

Именованная стартовая оболочка

css
.page {
display: grid;
grid-template-columns: 1fr 16rem;
gap: 1.5rem;
}

.page__main,
.page__rail {
min-width: 0;
}

Попробуйте сами

  1. Сделайте контейнер с display: grid.
  2. Задайте grid-template-columns: repeat(3, 1fr).
  3. Добавьте gap: 1rem между дорожками.
  4. Попробуйте 2fr 1fr для оболочки main + rail.
  5. Напишите одно предложение: когда вы всё же выберете Flexbox?

Частые ошибки

  • Ставить display: grid на каждый элемент без нужды в раскладке
  • Ждать, что один только wrap Flexbox заменит настоящий 2D Grid
  • Пропускать gap и вечно воевать с margin детей
  • Прыгать к именованным областям, пока базовые дорожки не стали привычными
  • Собирать целые оболочки страницы на float, когда Grid подходит лучше

Кратко

  • CSS Grid двумерен: строки и колонки вместе
  • display: grid превращает детей в элементы сетки
  • grid-template-columns (и позже строки) задают дорожки
  • gap и fr держат промежутки и свободное место спокойными
  • Более глубокие уроки о контейнере, элементе, области и адаптивном Grid — дальше

🧠 Проверьте Свои Знания

Готов к Началу

Проверьте Свои Знания

Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему

❓
7
Вопросы
🎯
70%
Для Прохождения
♾️
∞
Время
🔄
∞
Попытки

📝 Инструкции

  • Внимательно прочитайте каждый вопрос
  • Выберите лучший ответ на каждый вопрос
  • Вы можете пересдавать тест столько раз, сколько захотите
  • Ваш прогресс будет показан вверху