Перейти до основного вмісту
Версія: Далі

Основні концепції

Flexible Box Layout (Flexbox) - це CSS-модуль, який визначає набір властивостей для розміщення, вирівнювання і розподілу простору між елементами в контейнері, навіть якщо їх розмір невідомий або динамічний.

Основна ідея полягає в тому, щоб розділити елементи на блок-контейнер (flex-контейнер) і його дітей (flex-елементи).

Флекс контейнерФлекс елементи

Flexbox-контейнер може змінювати ширину і висоту його дітей, а також напрямок їх розташування - вирівнювання в колонку або рядок, порядок відображення елементів і відстань між ними. Контейнер розширює елементи, щоб найоптимальніше заповнити доступний простір, або стискає їх, щоб запобігти переповненню.

Увага

У flex-контейнері скасовується більшість правил розташування елементів за їх типом і потоком документа.

  • Елементи втрачають «тип», перестають бути рядковими або блоковими.
  • Блокові елементи перестають розташовуватись вертикально один під одним.
  • Крайні відступи на стику з межею батька не випадають.
  • Вертикальні відступи елементів не схлопуються.
  • Працюють автоматичні вертикальні відступи.

Термінологія

Звичайний порядок розташування елементів визначається потоком документа та їх типом (блоковий або рядковий). У моделі Flexbox напрямок розташування елементів визначається направляючими осями контейнера, вздовж яких вибудовуються елементи.

Основні концепції flexbox
  • main axis - головна вісь flex-контейнера, вздовж якої розташовуються елементи. Вона не обов'язково горизонтальна, її напрямок контролюється властивістю flex-direction.
  • main-start і main-end - елементи в контейнері завжди розташовуються від main-start (початок головної осі) і до main-end (кінець головної осі).
  • cross axis - поперечна вісь, яка завжди перпендикулярна до головної осі. Її напрямок залежить від головної осі і явно не встановлюється.
  • cross-start і cross-end - початок і кінець поперечної осі, вздовж якої розташовуються рядки елементів.

Додаткові матеріали

Використовуйте ці інтерактивні майданчики для того, щоб візуально закріпити основні концепції, які розглядаються.