Вивчай
CSS

CSS Flexbox та Grid шпаргалка

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-directionrowrow-reverse
flex-wrapnowrapwrap
gap10px1rem 2rem

justify-content — вирівнювання по головній осі

justify-content — всі значенняjustify-content — всі значення

align-items — вирівнювання по поперечній осі

align-items — всі значенняalign-items — всі значення


Flexbox — властивості елементів

ВластивістьЗа замовч.Опис
order0Порядок відображення
flex-grow0Здатність розширюватись
flex-shrink1Здатність стискатись
flex-basisautoПочатковий розмір
flex0 1 autoСкорочення: grow shrink basis
align-selfautoВирівнювання окремого елемента

flex-grow — як елементи розширюються

flex-grow — візуалізаціяflex-grow — візуалізація

flex-shrink — як елементи стискаються

flex-shrink — візуалізаціяflex-shrink — візуалізація

Типові значення flex

ЗначенняРозшифруванняКоли використовувати
flex: 11 1 0%Елемент займає весь вільний простір
flex: auto1 1 autoРосте і стискається від розміру вмісту
flex: none0 0 autoФіксований розмір, не змінюється
flex: 0 1 300pxБазис 300px, стискається, не росте

Grid — властивості контейнера

.container {
  display: grid; /* або inline-grid */
}
ВластивістьПрикладОпис
grid-template-columns200px 1fr 1frШирина колонок
grid-template-rowsauto 1fr autoВисота рядків
grid-template-areas"header header"Іменовані ділянки
gap1remВідстань між комірками
justify-itemsstartcenter
align-itemsstartcenter
grid-auto-flowrowcolumn

fr — дробові одиниці

fr одиниці — як ділиться простірfr одиниці — як ділиться простір

repeat() та minmax()

repeat та minmax — візуалізаціяrepeat та minmax — візуалізація

auto-fit vs auto-fill

auto-fit vs auto-fill — різницяauto-fit vs auto-fill — різниця

justify-items / align-items — вирівнювання в комірці

justify-items та align-items в Gridjustify-items та align-items в Grid

grid-auto-flow — напрямок заповнення

grid-auto-flow — row, column, densegrid-auto-flow — row, column, dense


Grid — властивості елементів

ВластивістьПрикладОпис
grid-column1 / 3 або span 2Позиція по колонках
grid-row1 / 3 або span 2Позиція по рядках
grid-areaheaderПрив'язка до іменованої ділянки
justify-selfstartcenter
align-selfstartcenter

grid-column / grid-row — об'єднання комірок

grid-column та grid-row spangrid-column та grid-row span

grid-template-areas — іменовані ділянки

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;
}
Інфо