CSS gap (grid-gap) — відстань між колонками й рядками


Властивість grid-gap використовується для скороченого запису grid-column-gap і grid-row-gap, для визначення розміру жолобів між стовпцями та рядками сітки відповідно. Це зручний спосіб встановити сіткові жолоби, не прописуючи кожну властивість окремо.

Властивість grid-gap

Приклад використання властивості:

grid-gap: 16px;

/* ідентично до */
grid-gap-rows: 16px;
grid-gap-columns: 16px;

Таким чином, для рядків та стовпців встановлюється жолоб (одне значення).

Якщо ви прописуєте два значення, перше значення встановлює жолоб для рядків, друге значення встановлює жолоб для стовпців:

grid-gap: 16px 32px;

/* ідентично до */
grid-gap-rows: 16px;
grid-gap-columns: 32px;
автор: Svitlana

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

автор: NagarD

Нотатка

Зверніть увагу, що властивість grid онулює ці жолоби.

автор: Svitlana

Синтаксис

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

Властивість grid-gap може отримувати єдине значення:

<grid-row-gap> <grid-column-gap>

значення довжини, для grid-column-gap і grid-row-gap відповідно

автор: Svitlana

Значення без задання: 0 (для обох підвластивостей)
Наслідує: Ні
Анімується: Так
JavaScript синтаксис: object.style.gridGap

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
57 52 10.1 44 16 —
<percentage> values 66.0 52.0 Не підтримується 53.0 16.0 Не підтримується
calc() values 66.0 52.0 Не підтримується 53.0 Не підтримується Не підтримується
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
57 57 52 10.3
<percentage> values 66.0 52.0 Не підтримується
calc() values 66.0 52.0 Не підтримується

Приклади

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

Демонстрація роботи

HTML

<div class="box">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
  <div class="item">7</div>
  <div class="item">8</div>
  <div class="item">9</div>
</div>

CSS

.box {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-gap: 42px;
}

.box .item {
  background-color: tomato;
  color: white;
  font-size: 1.4em;
  font-family: monospace;
  padding: 16px;
}

.box .item:nth-child(1) {
  position: relative;
}

.box .item:nth-child(1)::after,
.box .item:nth-child(1)::before {
  content: "42px";
  display: block;
  position: absolute;
  color: #111;
  font-size: .77em;
}

.box .item:nth-child(1)::after {
  top: 19px;
  right: -40px;
}

.box .item:nth-child(1)::before {
  bottom: -30px;
  right: 41px;
}
автор: Svitlana

Два значення: 16px між рядами, 24px між колонками. Сучасна назва властивості — gap.

HTML

<div class="box">
    <div>1</div><div>2</div><div>3</div>
    <div>4</div><div>5</div><div>6</div>
</div>

CSS

.box {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 16px 24px;
}

.box div {
    background: #0172ad;
    color: #fff;
    padding: 8px;
}
автор: Svitlana

Динамічний приклад

HTML

<p>У цьому прикладі, Ви можете змінювати значення для властивості <strong>grid-gap</strong>:</p>

<p>У цьому прикладі для властивості задаються значення у пікселях (px) у формі: "grid-row-gap grid-column-gap". Одне значення застосовується для двох властивостей відразу.</p>

<input type="number" id="row" class="input" min="0" value="16">px
<input type="number" id="column" class="input" min="0" value="32">px

<div class="box">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
  <div class="item">7</div>
  <div class="item">8</div>
  <div class="item">9</div>
</div>

CSS

body {
  font-family: monospace;
  font-size: 16px;
  line-height: 1.45;
}

.input {
  margin-bottom: 36px;
  padding: 4px;
  font-size: 18px;
}

.box {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-row-gap: 16px;
  grid-column-gap: 32px;
}

.box .item {
  background-color: tomato;
  color: white;
  font-size: 1.4em;
  font-family: monospace;
  padding: 16px;
  text-align: center;
}

JS

document.querySelectorAll('.input').forEach((el) => el.addEventListener('change', function () {
  document.querySelectorAll('.box').forEach((n) => n.style.setProperty('grid-gap', document.querySelector('#row').value + 'px ' + document.querySelector('#column').value + 'px'));
}));
автор: Svitlana

Динамічний приклад

HTML

<div id="container">
<div id="gridGaps" class="wrap-range">
  <p>
  <label>grid-rows-gap: <span>1</span>px;</label>
  <input type="range" name="gridRowGap" min="0" max="20" value="1"> 
  <p>
  <p>
  <label>grid-column-gap: <span>1</span>px;</label>
  <input type="range" name="gridColumnGap" min="0" max="20" value="1"> 
  <p>
  <p class="result" style="display:inline; white-space: nowrap;">grid-gap: <span id="spangridRowGap">1</span>px <span id="spangridColumnGap">1</span>px;</p>
</div>

  <div id="list">
    <div class="item"><p>1</p></div>   
    <div class="item"><p>2</p></div>
    <div class="item"><p>3</p></div>
    <div class="item"><p>4</p></div>
    <div class="item"><p>5</p></div>
    <div class="item"><p>6</p></div>   
    <div class="item"><p>7</p></div>
    <div class="item"><p>8</p></div>
    <div class="item"><p>9</p></div>
    <div class="item"><p>10</p></div>
    <div class="item"><p>11</p></div>   
    <div class="item"><p>12</p></div>
    <div class="item"><p>13</p></div>
    <div class="item"><p>14</p></div>
    <div class="item"><p>15</p></div>  
  </div>
</div>

CSS

#list {
  display: grid;
  grid-template-columns:repeat(5, minmax(auto,100px)); 
  grid-template-rows:repeat(3, 100px);
  grid-gap:1px;
  grid-auto-flow: column; 
  margin:1em 0;
}
.result{
  font-size: 20px;
  font-weight: 700;
   color: black;
}
.item {
  border-radius:5px;
  background-color: red;
  display:grid;
}

.item p {
  justify-self: center;
  align-self: center;
  color:white;
  font-size: 20px;
}

body {
  line-height: 2em;
  color:#777;
}
#container{
  width:500px;
  margin:1em auto;
}
.wrap-range input{
  width:60%; 
  float:right; 
  margin-top:.5em;
}
label{
  display:inline; 
  white-space: nowrap; 
  font-size: 20px; 
  color: black;
}

JS

var ranges = document.querySelector("#gridGaps");
var grid = document.querySelector("#list");
var spanRowGap = document.querySelector("#gridRowGap");
var spanColumnGap = document.querySelector("#gridColumnGap");
ranges.addEventListener("input", function (evt) {
  var val = evt.target.value;
  var span = evt.target.parentElement.querySelector("span");

  span.innerHTML = val;console.log(val);
  var prop = evt.target.name;
  grid.style[prop] = val + "px";

  // grid-gap span
  var ggSpan = document.querySelector("#span" + prop);
  console.log(ggSpan);
  ggSpan.innerHTML = val;
}, false);
//# sourceURL=pen.js
автор: Svitlana

Один gap: 10px 40px — і різні проміжки по вертикалі й горизонталі. Зверніть увагу: біля рамки контейнера відступу немає, gap діє лише між елементами.

HTML

<div class="grid">
    <span>1</span><span>2</span><span>3</span>
    <span>4</span><span>5</span><span>6</span>
</div>

CSS

.grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    /* 10px між рядками, 40px між колонками */
    gap: 10px 40px;
    border: 2px solid #c0392b;
}

.grid span {
    padding: 1rem;
    text-align: center;
    background: #16a085;
    color: #fff;
}
автор: NagarD

Коментарі

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

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

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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