gap

Свойство gap позволяет одновременно установить промежуток между строками и колонками элементов. Оно может применяться в следующих ситуациях:

  • определяет расстояние между колонками текста в многоколоночном макете;
  • задаёт промежуток между колонками или строками флекс-элементов;
  • задаёт промежуток между колонками и строками грид-элементов.

В ранних версиях спецификации Grid Layout (вёрстка с помощью гридов) это свойство называлось grid-gap. Для совместимости браузеры продолжают поддерживать это свойство как псевдоним gap.

Краткая информация

Значение по умолчанию normal normal
Наследуется Нет
Применяется К многоколоночным элементам, флекс-контейнерам, грид-контейнерам
Анимируется Да

Синтаксис

gap: row-gap column-gap?
Описание Пример
<тип> Указывает тип значения. <размер>
A && B Значения должны выводиться в указанном порядке. <размер> && <цвет>
A | B Указывает, что надо выбрать только одно значение из предложенных (A или B). normal | small-caps
A || B Каждое значение может использоваться самостоятельно или совместно с другими в произвольном порядке. width || count
[ ] Группирует значения. [ crop || cross ]
* Повторять ноль или больше раз. [,<время>]*
+ Повторять один или больше раз. <число>+
? Указанный тип, слово или группа не является обязательным. inset?
{A, B} Повторять не менее A, но не более B раз. <радиус>{1,4}
# Повторять один или больше раз через запятую. <время>#

Значения

См. соответствующие свойства.

Песочница

1
2
3
div {
  display: flex;
  gap: {{ playgroundValue }}%;
}

Пример

<!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8"> <title>gap</title> <style> .container { display: flex; /* Флекс-контейнер */ gap: 1em; /* Расстояние между блоками */ flex-direction: row; /* Блоки располагаются горизонтально */ } .column { text-align: center; /* Текст по центру */ padding: 1rem; /* Расстояние от текста до края */ } .content { flex-basis: 70%; /* Ширина левой колонки */ background: #8ea3ae; /* Цвет фона */ } .sidebar { flex-basis: 30%; /* Ширина правой колонки */ background: #f8db94; /* Цвет фона */ } @media (max-width: 600px) { .container { flex-direction: column; /* Блоки располагаются вертикально */ } .content, .sidebar { flex-basis: 100%; /* Блоки занимают всю ширину */ } } </style> </head> <body> <div class="container"> <div class="column content">Основное содержимое</div> <div class="column sidebar">Боковая панель</div> </div> </body> </html>

В данном примере при уменьшении ширины окна браузера до 600 пикселей блоки будут выстраиваться вертикально (рис. 1), а при увеличении ширины окна блоки будут выстраиваться горизонтально. Свойство gap устанавливает, в зависимости от положения блоков, горизонтальный или вертикальный интервал между блоками.

Интервал между элементами

Рис. 1. Интервал между элементами

Объектная модель

Объект.style.gap

Спецификация

Браузеры

Многоколоночная вёрстка 16 66 53 14.1 61
Вёрстка с помощью флексов 84 84 70 14.1 63
Вёрстка с помощью гридов 16 57 66 44 53 10.1 12 52 61
Многоколоночная вёрстка 50 52 37 10
Вёрстка с помощью флексов 84 63 60 14.5
Вёрстка с помощью гридов 66 61 47 12

В таблице браузеров применяются следующие обозначения.

  • — элемент полностью поддерживается браузером;
  • — элемент браузером не воспринимается и игнорируется;
  • — при работе возможно появление различных ошибок, либо элемент поддерживается с оговорками.

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