CSS Flexbox та Grid шпаргалка
CSS Flexbox та Grid шпаргалка
Два головні інструменти для побудови макетів. Тримай під рукою — тут зібрано всі властивості з візуальними прикладами.
Детальніше про Flexbox — в уроках Flexbox частина 1 та Flexbox частина 2, про Grid — в уроці CSS Grid.
Коли що використовувати?
| Сценарій | Рекомендація |
|---|---|
| Рядок елементів (навігація, кнопки) | Flexbox |
| Центрування одного елемента | Flexbox |
| Карткова галерея | Flexbox або Grid |
| Сторінка (header/sidebar/main/footer) | Grid |
| Складна двовимірна сітка | Grid |
Flexbox — властивості контейнера
.container {
display: flex; /* або inline-flex */
}
| Властивість | Значення | Опис |
|---|---|---|
flex-direction | row | row-reverse |
flex-wrap | nowrap | wrap |
gap | 10px | 1rem 2rem |
justify-content — вирівнювання по головній осі
justify-content — всі значення
align-items — вирівнювання по поперечній осі
align-items — всі значення
Flexbox — властивості елементів
| Властивість | За замовч. | Опис |
|---|---|---|
order | 0 | Порядок відображення |
flex-grow | 0 | Здатність розширюватись |
flex-shrink | 1 | Здатність стискатись |
flex-basis | auto | Початковий розмір |
flex | 0 1 auto | Скорочення: grow shrink basis |
align-self | auto | Вирівнювання окремого елемента |
flex-grow — як елементи розширюються
flex-grow — візуалізація
flex-shrink — як елементи стискаються
flex-shrink — візуалізація
Типові значення flex
| Значення | Розшифрування | Коли використовувати |
|---|---|---|
flex: 1 | 1 1 0% | Елемент займає весь вільний простір |
flex: auto | 1 1 auto | Росте і стискається від розміру вмісту |
flex: none | 0 0 auto | Фіксований розмір, не змінюється |
flex: 0 1 300px | — | Базис 300px, стискається, не росте |
Grid — властивості контейнера
.container {
display: grid; /* або inline-grid */
}
| Властивість | Приклад | Опис |
|---|---|---|
grid-template-columns | 200px 1fr 1fr | Ширина колонок |
grid-template-rows | auto 1fr auto | Висота рядків |
grid-template-areas | "header header" | Іменовані ділянки |
gap | 1rem | Відстань між комірками |
justify-items | start | center |
align-items | start | center |
grid-auto-flow | row | column |
fr — дробові одиниці
fr одиниці — як ділиться простір
repeat() та minmax()
repeat та minmax — візуалізація
auto-fit vs auto-fill
auto-fit vs auto-fill — різниця
justify-items / align-items — вирівнювання в комірці
justify-items та align-items в Grid
grid-auto-flow — напрямок заповнення
grid-auto-flow — row, column, dense
Grid — властивості елементів
| Властивість | Приклад | Опис |
|---|---|---|
grid-column | 1 / 3 або span 2 | Позиція по колонках |
grid-row | 1 / 3 або span 2 | Позиція по рядках |
grid-area | header | Прив'язка до іменованої ділянки |
justify-self | start | center |
align-self | start | center |
grid-column / grid-row — об'єднання комірок
grid-column та grid-row span
grid-template-areas — іменовані ділянки
grid-template-areas — візуалізація
Рецепти
Центрування елемента (Flexbox)
.center {
display: flex;
justify-content: center;
align-items: center;
}
Responsive сітка карток (Grid)
.cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1.5rem;
}
Sidebar + контент (Grid)
.layout {
display: grid;
grid-template-columns: 250px 1fr;
gap: 2rem;
}
Рівні колонки (Flexbox)
.columns {
display: flex;
gap: 1rem;
}
.columns > * {
flex: 1;
}
Sticky footer (Flexbox)
body {
display: flex;
flex-direction: column;
min-height: 100vh;
}
main {
flex: 1;
}
Інфо
- A Complete Guide to Flexbox — найпопулярніший довідник від CSS-Tricks
- A Complete Guide to CSS Grid — аналогічний довідник для Grid
- Flexbox Froggy — гра для вивчення Flexbox українською
- Grid Garden — гра для вивчення Grid українською
- Learn CSS Grid Branching — інтерактивний туторіал