CSS gap — проміжок між колонками і рядками grid та flex


CSS властивість gap задає проміжок між рядками та колонками у grid-, flex- і колонкових контейнерах. Це скорочення для row-gap і column-gap.

автор: NagarD

Загальний опис

До появи gap відступи між картками робили через margin — і одразу отримували зайвий відступ по краях контейнера, який доводилось гасити через :last-child чи від'ємні маргіни.

gap працює інакше: він додає простір між елементами і не чіпає зовнішні краї. Одне значення — і сітка дихає рівно там, де треба.

Якщо задати два значення, перше піде на рядки, друге на колонки: gap: 2rem 1rem.

автор: NagarD

Порада

У flex-контейнері gap заміняє весь набір хитрощів із margin і від'ємними відступами. Просто задай display: flex; gap: 1rem — і забудь про :last-child.

автор: NagarD
Нотатка

У flexbox gap з'явився пізніше, ніж у grid (Safari підтримує з 14.1). Якщо треба підтримка зовсім старих браузерів — доведеться лишити запасний варіант на margin.

автор: NagarD

Синтаксис

gap: <row-gap> <column-gap>;

Властивість gap може отримувати 3 значень:

length

Фіксований проміжок (px, em, rem…).

автор: NagarD

percentage

Проміжок у відсотках від розміру контейнера.

автор: NagarD

normal

Типовий проміжок (1em для колонкового макета, 0 для решти).

автор: NagarD

Значення без задання: normal
Наслідує: Ні
Анімується: Так

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
gap 84+ 63+ 14.1+ 70+ 84+ -
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
gap 84+ yes yes 14.5+

Приклади

+ запропонувати свій приклад у пісочниці

Сітка карток із рівними проміжками — без жодного margin.

HTML

<div class="cards">
    <article>Картка 1</article>
    <article>Картка 2</article>
    <article>Картка 3</article>
</div>

CSS

.cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    /* 2rem між рядками, 1rem між колонками */
    gap: 2rem 1rem;
}

.cards article {
    padding: 1rem;
    background: #f4f4f4;
}
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід