</> Praktum

Главная / CSS / CSS gap

Справочник CSS

Gap: расстояние между элементами

gap задаёт промежуток внутри flex- или grid-контейнера. В отличие от margin, он появляется только между соседними элементами.

Синтаксис

.cards { display: grid; gap: 24px; }
.menu { display: flex; gap: 8px 20px; }

Одно значение задаёт одинаковый промежуток. Два значения — сначала между строками, затем между колонками.

Отдельные направления

.grid { row-gap: 24px; column-gap: 16px; }

Единицы

Обычно используют px, rem или адаптивный clamp(). Проценты в gap могут вести себя неожиданно, если размер контейнера не определён.

Ошибки

  • Gap задан обычному block-контейнеру.
  • Одновременно используются gap и внешние margin у всех детей.
  • Слишком большой промежуток ломает узкий экран.

Попробуй

Создай переносимое flex-меню с горизонтальным gap 20px и вертикальным 10px.

Когда gap удобнее внешних отступов

gap задаёт расстояние только между элементами Grid или Flex-контейнера. У первого и последнего элемента не появляется лишний внешний отступ, поэтому компонент проще переиспользовать. Одно значение задаёт интервалы по обеим осям, два — сначала между строками, затем между колонками.

В Flexbox направление зависит от flex-direction, поэтому row-gap и column-gap лучше проверять визуально. Margin всё ещё нужен, когда отступ относится к самому элементу, а не к группе соседей. Не смешивай gap и одинаковые margin у дочерних элементов без причины — расстояния могут неожиданно сложиться.

Разберём рабочий пример

.cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 24px 16px;
}

.actions { display: flex; gap: 8px; }

Не копируй пример вслепую: измени данные, убери одну строку и посмотри, как меняется результат. Такой эксперимент быстрее показывает роль каждой части кода, чем простое чтение.

Проверка перед использованием

  • gap объявлен у контейнера.
  • Понятно, какая ось считается строкой и колонкой.
  • Нет дублирующих margin у дочерних элементов.
  • Интервалы проверены при переносе строк.

Попробуй в браузере

Измени код и нажми «Запустить». Результат появится ниже.

Ещё в разделе CSS