Перейти до основного вмісту Перейти до навігації документами
Check

Швидко керуйте макетом, вирівнюванням і розміром стовпців сітки, навігацією, компонентами тощо за допомогою повного набору адаптивних утиліт flexbox. Для більш складних реалізацій може знадобитися спеціальний CSS.

Увімкнути гнучку поведінку

Застосуйте displayутиліти для створення контейнера flexbox і перетворення прямих дочірніх елементів у елементи flex. Гнучкі контейнери та предмети можна додатково модифікувати за допомогою додаткових властивостей гнучкості.

Я флексбокс контейнер!
html
<div class="d-flex p-2">I'm a flexbox container!</div>
Я вбудований контейнер flexbox!
html
<div class="d-inline-flex p-2">I'm an inline flexbox container!</div>

Чуйні варіанти також існують для .d-flexі .d-inline-flex.

  • .d-flex
  • .d-inline-flex
  • .d-sm-flex
  • .d-sm-inline-flex
  • .d-md-flex
  • .d-md-inline-flex
  • .d-lg-flex
  • .d-lg-inline-flex
  • .d-xl-flex
  • .d-xl-inline-flex
  • .d-xxl-flex
  • .d-xxl-inline-flex

Напрямок

Встановіть напрямок елементів flex у контейнері flex за допомогою утиліт направлення. У більшості випадків ви можете опустити тут горизонтальний клас, оскільки браузер за замовчуванням row. Однак ви можете зіткнутися з ситуаціями, коли потрібно було явно встановити це значення (наприклад, адаптивні макети).

Використовуйте .flex-rowдля встановлення горизонтального напрямку (браузер за замовчуванням) або .flex-row-reverseдля початку горизонтального напрямку з протилежного боку.

Flex елемент 1
Flex item 2
Flex item 3
Flex елемент 1
Flex item 2
Flex item 3
html
<div class="d-flex flex-row mb-3">
  <div class="p-2">Flex item 1</div>
  <div class="p-2">Flex item 2</div>
  <div class="p-2">Flex item 3</div>
</div>
<div class="d-flex flex-row-reverse">
  <div class="p-2">Flex item 1</div>
  <div class="p-2">Flex item 2</div>
  <div class="p-2">Flex item 3</div>
</div>

Використовуйте .flex-columnдля встановлення вертикального напрямку або .flex-column-reverseдля початку вертикального напрямку з протилежного боку.

Flex елемент 1
Flex item 2
Flex item 3
Flex елемент 1
Flex item 2
Flex item 3
html
<div class="d-flex flex-column mb-3">
  <div class="p-2">Flex item 1</div>
  <div class="p-2">Flex item 2</div>
  <div class="p-2">Flex item 3</div>
</div>
<div class="d-flex flex-column-reverse">
  <div class="p-2">Flex item 1</div>
  <div class="p-2">Flex item 2</div>
  <div class="p-2">Flex item 3</div>
</div>

Чуйні варіанти також існують для flex-direction.

  • .flex-row
  • .flex-row-reverse
  • .flex-column
  • .flex-column-reverse
  • .flex-sm-row
  • .flex-sm-row-reverse
  • .flex-sm-column
  • .flex-sm-column-reverse
  • .flex-md-row
  • .flex-md-row-reverse
  • .flex-md-column
  • .flex-md-column-reverse
  • .flex-lg-row
  • .flex-lg-row-reverse
  • .flex-lg-column
  • .flex-lg-column-reverse
  • .flex-xl-row
  • .flex-xl-row-reverse
  • .flex-xl-column
  • .flex-xl-column-reverse
  • .flex-xxl-row
  • .flex-xxl-row-reverse
  • .flex-xxl-column
  • .flex-xxl-column-reverse

Обґрунтуйте зміст

Використовуйте justify-contentутиліти на контейнерах flexbox, щоб змінити вирівнювання елементів flex на головній осі (вісь x для початку, вісь y, якщо flex-direction: column). Виберіть із start(за замовчуванням браузера), end, center, between, aroundабо evenly.

Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
<div class="d-flex justify-content-start">...</div>
<div class="d-flex justify-content-end">...</div>
<div class="d-flex justify-content-center">...</div>
<div class="d-flex justify-content-between">...</div>
<div class="d-flex justify-content-around">...</div>
<div class="d-flex justify-content-evenly">...</div>

Чуйні варіанти також існують для justify-content.

  • .justify-content-start
  • .justify-content-end
  • .justify-content-center
  • .justify-content-between
  • .justify-content-around
  • .justify-content-evenly
  • .justify-content-sm-start
  • .justify-content-sm-end
  • .justify-content-sm-center
  • .justify-content-sm-between
  • .justify-content-sm-around
  • .justify-content-sm-evenly
  • .justify-content-md-start
  • .justify-content-md-end
  • .justify-content-md-center
  • .justify-content-md-between
  • .justify-content-md-around
  • .justify-content-md-evenly
  • .justify-content-lg-start
  • .justify-content-lg-end
  • .justify-content-lg-center
  • .justify-content-lg-between
  • .justify-content-lg-around
  • .justify-content-lg-evenly
  • .justify-content-xl-start
  • .justify-content-xl-end
  • .justify-content-xl-center
  • .justify-content-xl-between
  • .justify-content-xl-around
  • .justify-content-xl-evenly
  • .justify-content-xxl-start
  • .justify-content-xxl-end
  • .justify-content-xxl-center
  • .justify-content-xxl-between
  • .justify-content-xxl-around
  • .justify-content-xxl-evenly

Вирівняйте елементи

Використовуйте align-itemsутиліти на контейнерах flexbox, щоб змінити вирівнювання елементів flex на поперечній осі (вісь y для початку, вісь x, якщо flex-direction: column). Виберіть із start, end, center, baselineабо stretch(браузер за замовчуванням).

Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
<div class="d-flex align-items-start">...</div>
<div class="d-flex align-items-end">...</div>
<div class="d-flex align-items-center">...</div>
<div class="d-flex align-items-baseline">...</div>
<div class="d-flex align-items-stretch">...</div>

Чуйні варіанти також існують для align-items.

  • .align-items-start
  • .align-items-end
  • .align-items-center
  • .align-items-baseline
  • .align-items-stretch
  • .align-items-sm-start
  • .align-items-sm-end
  • .align-items-sm-center
  • .align-items-sm-baseline
  • .align-items-sm-stretch
  • .align-items-md-start
  • .align-items-md-end
  • .align-items-md-center
  • .align-items-md-baseline
  • .align-items-md-stretch
  • .align-items-lg-start
  • .align-items-lg-end
  • .align-items-lg-center
  • .align-items-lg-baseline
  • .align-items-lg-stretch
  • .align-items-xl-start
  • .align-items-xl-end
  • .align-items-xl-center
  • .align-items-xl-baseline
  • .align-items-xl-stretch
  • .align-items-xxl-start
  • .align-items-xxl-end
  • .align-items-xxl-center
  • .align-items-xxl-baseline
  • .align-items-xxl-stretch

Вирівняти себе

Використовуйте align-selfутиліти для елементів flexbox, щоб окремо змінити їх вирівнювання на поперечній осі (вісь y для початку, вісь x, якщо flex-direction: column). Виберіть із тих самих параметрів, що й align-items: start, end, center, baselineабо stretch(браузер за замовчуванням).

Flex елемент
Вирівняний гнучкий елемент
Flex елемент
Flex елемент
Вирівняний гнучкий елемент
Flex елемент
Flex елемент
Вирівняний гнучкий елемент
Flex елемент
Flex елемент
Вирівняний гнучкий елемент
Flex елемент
Flex елемент
Вирівняний гнучкий елемент
Flex елемент
<div class="align-self-start">Aligned flex item</div>
<div class="align-self-end">Aligned flex item</div>
<div class="align-self-center">Aligned flex item</div>
<div class="align-self-baseline">Aligned flex item</div>
<div class="align-self-stretch">Aligned flex item</div>

Чуйні варіанти також існують для align-self.

  • .align-self-start
  • .align-self-end
  • .align-self-center
  • .align-self-baseline
  • .align-self-stretch
  • .align-self-sm-start
  • .align-self-sm-end
  • .align-self-sm-center
  • .align-self-sm-baseline
  • .align-self-sm-stretch
  • .align-self-md-start
  • .align-self-md-end
  • .align-self-md-center
  • .align-self-md-baseline
  • .align-self-md-stretch
  • .align-self-lg-start
  • .align-self-lg-end
  • .align-self-lg-center
  • .align-self-lg-baseline
  • .align-self-lg-stretch
  • .align-self-xl-start
  • .align-self-xl-end
  • .align-self-xl-center
  • .align-self-xl-baseline
  • .align-self-xl-stretch
  • .align-self-xxl-start
  • .align-self-xxl-end
  • .align-self-xxl-center
  • .align-self-xxl-baseline
  • .align-self-xxl-stretch

Заповнити

Використовуйте .flex-fillклас для серії однотипних елементів, щоб змусити їх отримати ширину, що дорівнює їхньому вмісту (або рівну ширину, якщо їхній вміст не перевищує рамки), займаючи при цьому весь доступний горизонтальний простір.

Гнучкий предмет із великою кількістю вмісту
Flex елемент
Flex елемент
html
<div class="d-flex">
  <div class="p-2 flex-fill">Flex item with a lot of content</div>
  <div class="p-2 flex-fill">Flex item</div>
  <div class="p-2 flex-fill">Flex item</div>
</div>

Чуйні варіанти також існують для flex-fill.

  • .flex-fill
  • .flex-sm-fill
  • .flex-md-fill
  • .flex-lg-fill
  • .flex-xl-fill
  • .flex-xxl-fill

Рости і зменшуватися

Використовуйте .flex-grow-*утиліти, щоб увімкнути здатність елемента Flex збільшуватися, щоб заповнити доступний простір. У наведеному нижче прикладі .flex-grow-1елементи використовують весь доступний простір, але залишають необхідний простір двом іншим елементам.

Flex елемент
Flex елемент
Третій елемент гнучкості
html
<div class="d-flex">
  <div class="p-2 flex-grow-1">Flex item</div>
  <div class="p-2">Flex item</div>
  <div class="p-2">Third flex item</div>
</div>

Використовуйте .flex-shrink-*утиліти, щоб увімкнути здатність гнучкого елемента зменшуватися, якщо необхідно. У наведеному нижче прикладі другий flex-елемент з .flex-shrink-1примусово переносить свій вміст на новий рядок, «згортаючись», щоб залишити більше місця для попереднього flex-елемента з .w-100.

Flex елемент
Flex елемент
html
<div class="d-flex">
  <div class="p-2 w-100">Flex item</div>
  <div class="p-2 flex-shrink-1">Flex item</div>
</div>

Чуйні варіанти також існують для flex-growі flex-shrink.

  • .flex-{grow|shrink}-0
  • .flex-{grow|shrink}-1
  • .flex-sm-{grow|shrink}-0
  • .flex-sm-{grow|shrink}-1
  • .flex-md-{grow|shrink}-0
  • .flex-md-{grow|shrink}-1
  • .flex-lg-{grow|shrink}-0
  • .flex-lg-{grow|shrink}-1
  • .flex-xl-{grow|shrink}-0
  • .flex-xl-{grow|shrink}-1
  • .flex-xxl-{grow|shrink}-0
  • .flex-xxl-{grow|shrink}-1

Автоматичні поля

Flexbox може робити деякі чудові речі, коли ви поєднуєте гнучкі вирівнювання з автоматичними полями. Нижче наведено три приклади керування гнучкими елементами за допомогою автоматичних полів: за замовчуванням (без автоматичного поля), натискання двох елементів праворуч ( .me-auto) і натискання двох елементів ліворуч ( .ms-auto).

Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
html
<div class="d-flex mb-3">
  <div class="p-2">Flex item</div>
  <div class="p-2">Flex item</div>
  <div class="p-2">Flex item</div>
</div>

<div class="d-flex mb-3">
  <div class="me-auto p-2">Flex item</div>
  <div class="p-2">Flex item</div>
  <div class="p-2">Flex item</div>
</div>

<div class="d-flex mb-3">
  <div class="p-2">Flex item</div>
  <div class="p-2">Flex item</div>
  <div class="ms-auto p-2">Flex item</div>
</div>

З align-items

Вертикально перемістіть один гнучкий елемент у верхню або нижню частину контейнера, змішуючи align-items, flex-direction: columnта margin-top: autoабо margin-bottom: auto.

Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
html
<div class="d-flex align-items-start flex-column mb-3" style="height: 200px;">
  <div class="mb-auto p-2">Flex item</div>
  <div class="p-2">Flex item</div>
  <div class="p-2">Flex item</div>
</div>

<div class="d-flex align-items-end flex-column mb-3" style="height: 200px;">
  <div class="p-2">Flex item</div>
  <div class="p-2">Flex item</div>
  <div class="mt-auto p-2">Flex item</div>
</div>

Обгортка

Змініть спосіб упаковки гнучких елементів у гнучкий контейнер. Виберіть без перенесення (браузер за замовчуванням) за допомогою .flex-nowrap, обтікання за допомогою .flex-wrapабо зворотне загортання за допомогою .flex-wrap-reverse.

Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
<div class="d-flex flex-nowrap">
  ...
</div>
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
<div class="d-flex flex-wrap">
  ...
</div>
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
<div class="d-flex flex-wrap-reverse">
  ...
</div>

Чуйні варіанти також існують для flex-wrap.

  • .flex-nowrap
  • .flex-wrap
  • .flex-wrap-reverse
  • .flex-sm-nowrap
  • .flex-sm-wrap
  • .flex-sm-wrap-reverse
  • .flex-md-nowrap
  • .flex-md-wrap
  • .flex-md-wrap-reverse
  • .flex-lg-nowrap
  • .flex-lg-wrap
  • .flex-lg-wrap-reverse
  • .flex-xl-nowrap
  • .flex-xl-wrap
  • .flex-xl-wrap-reverse
  • .flex-xxl-nowrap
  • .flex-xxl-wrap
  • .flex-xxl-wrap-reverse

порядок

Змінюйте візуальний порядок окремих елементів flex за допомогою декількох orderутиліт. Ми пропонуємо лише варіанти створення елемента першим або останнім, а також скидання для використання порядку DOM. Оскільки orderприймає будь-яке ціле число від 0 до 5, додайте власний CSS для будь-яких додаткових значень.

Перший гнучкий елемент
Другий гнучкий елемент
Третій елемент гнучкості
html
<div class="d-flex flex-nowrap">
  <div class="order-3 p-2">First flex item</div>
  <div class="order-2 p-2">Second flex item</div>
  <div class="order-1 p-2">Third flex item</div>
</div>

Чуйні варіанти також існують для order.

  • .order-0
  • .order-1
  • .order-2
  • .order-3
  • .order-4
  • .order-5
  • .order-sm-0
  • .order-sm-1
  • .order-sm-2
  • .order-sm-3
  • .order-sm-4
  • .order-sm-5
  • .order-md-0
  • .order-md-1
  • .order-md-2
  • .order-md-3
  • .order-md-4
  • .order-md-5
  • .order-lg-0
  • .order-lg-1
  • .order-lg-2
  • .order-lg-3
  • .order-lg-4
  • .order-lg-5
  • .order-xl-0
  • .order-xl-1
  • .order-xl-2
  • .order-xl-3
  • .order-xl-4
  • .order-xl-5
  • .order-xxl-0
  • .order-xxl-1
  • .order-xxl-2
  • .order-xxl-3
  • .order-xxl-4
  • .order-xxl-5

Крім того, існують класи responsive .order-firstі .order-last, які змінюють orderелемент, застосовуючи order: -1і order: 6відповідно.

  • .order-first
  • .order-last
  • .order-sm-first
  • .order-sm-last
  • .order-md-first
  • .order-md-last
  • .order-lg-first
  • .order-lg-last
  • .order-xl-first
  • .order-xl-last
  • .order-xxl-first
  • .order-xxl-last

Вирівняти вміст

Використовуйте align-contentутиліти на контейнерах flexbox, щоб вирівняти елементи flex разом на поперечній осі. Виберіть із start(за замовчуванням браузера), end, center, between, aroundабо stretch. Щоб продемонструвати ці утиліти, ми застосували flex-wrap: wrapта збільшили кількість гнучких елементів.

Голови вгору! Ця властивість не впливає на окремі рядки гнучких елементів.

Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
<div class="d-flex align-content-start flex-wrap">
  ...
</div>
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
<div class="d-flex align-content-end flex-wrap">...</div>
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
<div class="d-flex align-content-center flex-wrap">...</div>
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
<div class="d-flex align-content-between flex-wrap">...</div>
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
<div class="d-flex align-content-around flex-wrap">...</div>
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
Flex елемент
<div class="d-flex align-content-stretch flex-wrap">...</div>

Чуйні варіанти також існують для align-content.

  • .align-content-start
  • .align-content-end
  • .align-content-center
  • .align-content-between
  • .align-content-around
  • .align-content-stretch
  • .align-content-sm-start
  • .align-content-sm-end
  • .align-content-sm-center
  • .align-content-sm-between
  • .align-content-sm-around
  • .align-content-sm-stretch
  • .align-content-md-start
  • .align-content-md-end
  • .align-content-md-center
  • .align-content-md-between
  • .align-content-md-around
  • .align-content-md-stretch
  • .align-content-lg-start
  • .align-content-lg-end
  • .align-content-lg-center
  • .align-content-lg-between
  • .align-content-lg-around
  • .align-content-lg-stretch
  • .align-content-xl-start
  • .align-content-xl-end
  • .align-content-xl-center
  • .align-content-xl-between
  • .align-content-xl-around
  • .align-content-xl-stretch
  • .align-content-xxl-start
  • .align-content-xxl-end
  • .align-content-xxl-center
  • .align-content-xxl-between
  • .align-content-xxl-around
  • .align-content-xxl-stretch

Медіа об'єкт

Хочете скопіювати компонент медіа-об’єкта з Bootstrap 4? Відтворіть його миттєво за допомогою кількох утиліт flex, які забезпечують ще більшу гнучкість і налаштування, ніж раніше.

Placeholder Image
Це деякий вміст із медіакомпонента. Ви можете замінити це будь-яким вмістом і налаштувати його за потреби.
html
<div class="d-flex">
  <div class="flex-shrink-0">
    <img src="..." alt="...">
  </div>
  <div class="flex-grow-1 ms-3">
    This is some content from a media component. You can replace this with any content and adjust it as needed.
  </div>
</div>

І скажімо, ви хочете вертикально відцентрувати вміст поруч із зображенням:

Placeholder Image
Це деякий вміст із медіакомпонента. Ви можете замінити це будь-яким вмістом і налаштувати його за потреби.
html
<div class="d-flex align-items-center">
  <div class="flex-shrink-0">
    <img src="..." alt="...">
  </div>
  <div class="flex-grow-1 ms-3">
    This is some content from a media component. You can replace this with any content and adjust it as needed.
  </div>
</div>

Сасс

API утиліт

Утиліти Flexbox оголошені в нашому API утиліт у scss/_utilities.scss. Дізнайтеся, як використовувати API утиліт.

    "flex": (
      responsive: true,
      property: flex,
      values: (fill: 1 1 auto)
    ),
    "flex-direction": (
      responsive: true,
      property: flex-direction,
      class: flex,
      values: row column row-reverse column-reverse
    ),
    "flex-grow": (
      responsive: true,
      property: flex-grow,
      class: flex,
      values: (
        grow-0: 0,
        grow-1: 1,
      )
    ),
    "flex-shrink": (
      responsive: true,
      property: flex-shrink,
      class: flex,
      values: (
        shrink-0: 0,
        shrink-1: 1,
      )
    ),
    "flex-wrap": (
      responsive: true,
      property: flex-wrap,
      class: flex,
      values: wrap nowrap wrap-reverse
    ),
    "justify-content": (
      responsive: true,
      property: justify-content,
      values: (
        start: flex-start,
        end: flex-end,
        center: center,
        between: space-between,
        around: space-around,
        evenly: space-evenly,
      )
    ),
    "align-items": (
      responsive: true,
      property: align-items,
      values: (
        start: flex-start,
        end: flex-end,
        center: center,
        baseline: baseline,
        stretch: stretch,
      )
    ),
    "align-content": (
      responsive: true,
      property: align-content,
      values: (
        start: flex-start,
        end: flex-end,
        center: center,
        between: space-between,
        around: space-around,
        stretch: stretch,
      )
    ),
    "align-self": (
      responsive: true,
      property: align-self,
      values: (
        auto: auto,
        start: flex-start,
        end: flex-end,
        center: center,
        baseline: baseline,
        stretch: stretch,
      )
    ),
    "order": (
      responsive: true,
      property: order,
      values: (
        first: -1,
        0: 0,
        1: 1,
        2: 2,
        3: 3,
        4: 4,
        5: 5,
        last: 6,
      ),
    ),