CSS gap — проміжок між колонками і рядками grid та flex
CSS властивість gap задає проміжок між рядками та колонками у grid-, flex- і колонкових контейнерах. Це скорочення для row-gap і column-gap.
Загальний опис
До появи gap відступи між картками робили через margin — і одразу отримували зайвий відступ по краях контейнера, який доводилось гасити через :last-child чи від'ємні маргіни.
gap працює інакше: він додає простір між елементами і не чіпає зовнішні краї. Одне значення — і сітка дихає рівно там, де треба.
Якщо задати два значення, перше піде на рядки, друге на колонки: gap: 2rem 1rem.
- Порада
-
У flex-контейнері
автор: NagarDgapзаміняє весь набір хитрощів ізmarginі від'ємними відступами. Просто задайdisplay: flex; gap: 1rem— і забудь про:last-child. - Нотатка
-
У flexbox
автор: NagarDgapз'явився пізніше, ніж у grid (Safari підтримує з 14.1). Якщо треба підтримка зовсім старих браузерів — доведеться лишити запасний варіант наmargin.
Синтаксис
gap: <row-gap> <column-gap>;
Властивість gap може отримувати 3 значень:
-
length -
Фіксований проміжок (px, em, rem…).
автор: NagarD -
percentage -
Проміжок у відсотках від розміру контейнера.
автор: NagarD -
normal -
Типовий проміжок (1em для колонкового макета, 0 для решти).
автор: NagarD
| Значення без задання: | normal |
|---|---|
| Наслідує: | Ні |
| Анімується: | Так |
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| gap | 84+ | 63+ | 14.1+ | 70+ | 84+ | - |
| Переглядач | ||||
|---|---|---|---|---|
| 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;
}
Коментарі
Коментарів ще немає — будьте першим!