PassFront
  1. PassFront
  2. База знаний
  3. CSS Grid

Как работает grid-auto-flow и auto-размещение элементов?

CSS Grid

`grid-auto-flow` определяет, как Grid раскладывает элементы без явной позиции: по строкам или по колонкам и как заполнять пропуски.

Значения

  • row (по умолчанию) — заполняет строку за строкой.
  • column — заполняет колонку за колонкой, создаёт новые колонки.
  • dense — добавляет алгоритм «плотной упаковки»: мелкие элементы забирают пустые ячейки, оставшиеся от крупных.
.gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-flow: dense;
  gap: 8px;
}

.wide { grid-column: span 2; }
.tall { grid-row: span 2; }

Без dense рядом с крупной ячейкой могут остаться «дыры», с dense они заполняются.

Неявные треки

Если элементов больше, чем явных строк, Grid создаёт неявные. Их размер задают grid-auto-rows и grid-auto-columns:

grid-auto-rows: minmax(100px, auto);

Предупреждение

dense меняет визуальный порядок относительно DOM, что мешает навигации с клавиатуры и экранным чтецам.

Коротко для собеседования

Автоматическое размещение определяется grid-auto-flow. dense убирает дыры, но ломает соответствие порядка в DOM и на экране.

Другие вопросы раздела