css властивість grid
Властивість grid
являє собою набір горизонтальних і вертикальних ліній, які перетинаються - один набір визначає стовпці, а інший рядки. Елементи можуть бути поміщені в сітку, відповідно рядках і стовпцях.
grid
- це універсальна властивість для скороченого запису:
grid-template-rows
grid-template-columns
grid-template-areas
grid-auto-rows
grid-auto-columns
grid-auto-flow
grid-column-gap
grid-row-gap
Одночасно Ви можете вказати лише явні (grid-template-rows, grid-template-columns, grid-template-areas
) або неявні (grid-auto-rows, grid-auto-columns, grid-auto-flow
) властивості для сітки. Необов'язкові під-властивості (grid-column-gap, grid-row-gap
) отримують своє значення без задання, навіть якщо їх не було прописано.
Наприклад, два шматки стилів, написаних нижче - ідентичні:
.area {
grid: row 2fr / max-content;
}
.area {
grid-auto-flow: row;
grid-auto-rows: 2fr;
grid-auto-columns: max-content;
}
Властивість grid
також приймає більш складний, але досить зручний синтаксис для налаштування всього одночасно. Ви вказуєте grid-template-areas, grid-template-rows
i grid-template-columns
, а всі інші під-властивості автоматично отримують свої значення без задання. Ви можете вказувати назви рядків та розмірів доріжок у відповідності з їхніми сітками.
Це найпростіше описати на прикладі:
.area {
grid: [row1-start] "header header header" 1fr [row1-end]
[row2-start] "footer footer footer" 25px [row2-end] / auto 50px auto;
}
.area {
grid-template-areas:
"header header header"
"footer footer footer";
grid-template-rows: [row1-start] 1fr [row1-end row2-start] 25px [row2-end];
grid-template-columns: auto 50px auto;
}
Функція repeat()
Ви можете використовувати функцію repeat()
, щоб повторювати визначення рядка або стовпця стільки разів, скільки потрібно. Перший параметр визначає, скільки випадків визначення має бути показано, а другий параметр визначає список доріжок.
У цьому прикладі ми використовуємо функцію repeat()
, щоб вказати, скільки стовпців слід відображати.
Застосування значення автоматичного потоку (auto-flow
) для рядку є еквівалентом використання grid-auto-flow: row
:
grid: auto-flow 20vh / repeat(3, 30vw);
ASCII-синтаксис
Властивість grid-template-areas
дозволяє вам визначати області шаблонів за допомогою присвоєння певної назви. Це робить надзвичайно простою візуалізацію вашої сітці.
Якщо ви бачите, що grid-template-areas
є однією з під-властивостей, які треба прописувати у grid
, ви можете набагато скоротити ваші стилі й записувати ці назви безпосередньо до grid
.
Як це працює: ви створюєте текстову сітку з використанням названих областей сітки. Назви сітчастих областей надаються у вигляді ряду рядків, кожен з яких представляє інший рядок. Наприклад:
grid: "header header header"
"nav article sb"
"footer footer footer" / 20% 1fr 15%;
Синтаксис
grid: <'grid-template'> | <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? | [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>;
Властивість grid може отримувати 3 значення:
none
Встановлює всі під-властивості до їх початкових значень
<grid-template-rows> / <grid-template-columns>
Налаштовує
grid-template-rows
таgrid-template-columns
відповідно до вказаних значень, а всі інші під-властивості до їх початкових значень<grid-auto-flow> [<grid-auto-rows> [ / <grid-auto-columns>] ]
Приймає всі ті самі значення, що і
grid-auto-flow
,grid-auto-rows
таgrid-auto-columns
, відповідно. Якщо під-властивістьgrid-auto-columns
пропущена, вона отримує значення, прописане дляgrid-auto-rows
. Якщо обидві властивості пропущені, вони отримують свої початкові значення.
Значення без задання: | grid-template-rows: none grid-template-columns: none; grid-template-areas: none; grid-auto-rows: auto; grid-auto-columns: auto; grid-auto-flow: row; grid-column-gap: 0; grid-row-gap: 0; |
---|---|
Наслідує: | Ні |
Анімується: | Так |
JavaScript синтаксис: | object.style.grid |
Переглядачі
Переглядач | ||||||
---|---|---|---|---|---|---|
grid | 57.0 |
11* |
52.0 |
10.1 |
44.0 |
16.0 |
Переглядач | |||
---|---|---|---|
grid | 67.0 |
64.0 |
10.3 |
Мобільних переглядачів ще не додано.
Приклади
Демонстрація роботи властивості
Найпростіший приклад, який демонструє роботу властивості
Приклад
Синтаксис властивості
grid: auto-flow 20vh / repeat(3, 30vw);
/* ідентично до цього */
grid-template-rows: auto-flow 20vh;
grid-template-columns: repeat(3, 30vw);
grid-template-areas: none; /* без задання */
grid-column-gap: 0; /* без задання */
grid-row-gap: 0; /* без задання */