Перейти к содержимому

Class d flex что это

  • автор:

Flex

Быстрое управление компоновкой, выравниванием и калибровкой столбцов сетки, навигации, компонентов и т.д., с полным набором гибких утилит flexbox. Для более сложных реализаций может потребоваться пользовательский CSS.

Задействуйте «гибкое» поведение

Применяйте утилиты display для создания гибкого контейнера и трансформируйте прямые дочерние элементы в «гибкие». Гибкие контейнеры и элементы можно изменять дополнительными свойствами гибкости.

Я — контейнер flexbox!

 class="d-flex p-2">Я - контейнер flexbox! 

Я встроенный контейнер flexbox!

 class="d-inline-flex p-2">Я встроенный контейнер flexbox! 

Также существуют отзывчивые варианты .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

Направление

Задайте направление гибких элементов в гибком контейнере утилитами направления. В большинстве случаев вы можете пропустить «горизонтальный класс» в данном случае, т.к. умолчание браузера – row. Однако вы можете попасть в ситуацию, где вам понадобится явно задать это значение (например, при разработке отзывчивой верстки).

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

Flex элемент 1
Flex элемент 2
Flex элемент 3
Flex элемент 1
Flex элемент 2
Flex элемент 3

 class="d-flex flex-row">  class="p-2">Flex элемент 1  class="p-2">Flex элемент 2  class="p-2">Flex элемент 3   class="d-flex flex-row-reverse">  class="p-2">Flex элемент 1  class="p-2">Flex элемент 2  class="p-2">Flex элемент 3 

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

Flex элемент 1
Flex элемент 2
Flex элемент 3
Flex элемент 1
Flex элемент 2
Flex элемент 3

 class="d-flex flex-column">  class="p-2">Flex элемент 1  class="p-2">Flex элемент 2  class="p-2">Flex элемент 3   class="d-flex flex-column-reverse">  class="p-2">Flex элемент 1  class="p-2">Flex элемент 2  class="p-2">Flex элемент 3 

Для 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

Выравнивайте содержимое

Пользуйтесь утилитами justify-content или контейнерами флексбокса для изменения выравнивания гибких элементов по главной оси (ось х по умолчанию, ось у – если flex-direction: column ). Выбирайте из start (умолчание браузера), end , center , between или around .

Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент

 class="d-flex justify-content-start">.  class="d-flex justify-content-end">.  class="d-flex justify-content-center">.  class="d-flex justify-content-between">.  class="d-flex justify-content-around">. 

Отзывчивые вариации для justify-content .

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

Выравнивание элементов

Используйте утилиты align-items в контейнерах флексбокса для изменения выравнивания гибких элементов по перекрестной оси (ось у по умолч., ось х – если flex-direction: column ). Выбирайте из start , end , center , baseline или stretch (умолчание браузера).

Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент

 class="d-flex align-items-start">.  class="d-flex align-items-end">.  class="d-flex align-items-center">.  class="d-flex align-items-baseline">.  class="d-flex align-items-stretch">. 

Отзывчивые вариации для 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 self

Используйте утилиты align-self в гибких элементах для индивидуального изменения их выравнивания по перекрестной оси (ось у по умолч., ось х – если flex-direction: column ). Выбирайте из таких же параметров, как у align-items : start , end , center , baseline или stretch (умолчание браузера).

Flex элемент
Выровненный элемент flex
Flex элемент
Flex элемент
Выровненный элемент flex
Flex элемент
Flex элемент
Выровненный элемент flex
Flex элемент
Flex элемент
Выровненный элемент flex
Flex элемент
Flex элемент
Выровненный элемент flex
Flex элемент

 class="align-self-start">Выровненный элемент flex  class="align-self-end">Выровненный элемент flex  class="align-self-center">Выровненный элемент flex  class="align-self-baseline">Выровненный элемент flex  class="align-self-stretch">Выровненный элемент flex 

Отзывчивые вариации для 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

Авто-марджины

Флексбокс может невероятные вещи – если вы сочетаете выравнивание гибких элементов с авто-марджинами. Три примера ниже показывают контроль над гибкими элементами через авто-марджины: 1. по умолчанию (нет авто-марджина), 2. «прижимаем» два элемента к правому краю ( .mr-auto ), 3. «прижимаем» два элемента к левому краю ( .ml-auto ).

К несчастью, IE10 и IE11 не очень-то поддерживают авто-марджины в гибких элементах, чьи «родительские элементы» имеют атрибут justify-content . Смотри детали здесь.

Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент

 class="d-flex">  class="p-2">Flex элемент  class="p-2">Flex элемент  class="p-2">Flex элемент   class="d-flex">  class="mr-auto p-2">Flex элемент  class="p-2">Flex элемент  class="p-2">Flex элемент   class="d-flex">  class="p-2">Flex элемент  class="p-2">Flex элемент  class="ml-auto p-2">Flex элемент 

С элементами выравнивания

Передвигайте по вертикали один из гибких элементов к верху или низу контейнера, сочетая align-items , flex-direction: column и margin-top: auto или margin-bottom: auto .

Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент

 class="d-flex align-items-start flex-column" style="height: 200px;">  class="mb-auto p-2">Flex элемент  class="p-2">Flex элемент  class="p-2">Flex элемент   class="d-flex align-items-end flex-column" style="height: 200px;">  class="p-2">Flex элемент  class="p-2">Flex элемент  class="mt-auto p-2">Flex элемент 

Обертка

Изменяйте способ оборачивания гибких элементов в гибком контейнере. Можете совсем не оборачивать их (умолчание браузера) с классом .flex-nowrap , можете обернуть их классом .flex-wrap или реверсируйте оборачивание с классом .flex-wrap-reverse .

Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент

 class="d-flex flex-nowrap"> . 

Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент

 class="d-flex flex-wrap"> . 

Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент
Flex элемент

 class="d-flex flex-wrap-reverse"> . 

Отзывчивые вариации есть также для 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

Порядок

Мы создали параметры лишь для придания элементу первого или последнего порядкового положения, как и для сброса данной настройки для использования порядка DOM. Так как order принимает цифровое значение (например, 5 ), добавьте обычный CSS для создания необходимых дополнительных значений.

Первый flex элемент
Второй flex элемент
Третий flex элемент

 class="d-flex flex-nowrap">  class="order-3 p-2">Первый flex элемент  class="order-2 p-2">Второй flex элемент  class="order-1 p-2">Третий flex элемент 

Отзывчивые вариации есть также для order .

  • .order-0
  • .order-1
  • .order-2
  • .order-3
  • .order-4
  • .order-5
  • .order-6
  • .order-7
  • .order-8
  • .order-9
  • .order-10
  • .order-11
  • .order-12
  • .order-sm-0
  • .order-sm-1
  • .order-sm-2
  • .order-sm-3
  • .order-sm-4
  • .order-sm-5
  • .order-sm-6
  • .order-sm-7
  • .order-sm-8
  • .order-sm-9
  • .order-sm-10
  • .order-sm-11
  • .order-sm-12
  • .order-md-0
  • .order-md-1
  • .order-md-2
  • .order-md-3
  • .order-md-4
  • .order-md-5
  • .order-md-6
  • .order-md-7
  • .order-md-8
  • .order-md-9
  • .order-md-10
  • .order-md-11
  • .order-md-12
  • .order-lg-0
  • .order-lg-1
  • .order-lg-2
  • .order-lg-3
  • .order-lg-4
  • .order-lg-5
  • .order-lg-6
  • .order-lg-7
  • .order-lg-8
  • .order-lg-9
  • .order-lg-10
  • .order-lg-11
  • .order-lg-12
  • .order-xl-0
  • .order-xl-1
  • .order-xl-2
  • .order-xl-3
  • .order-xl-4
  • .order-xl-5
  • .order-xl-6
  • .order-xl-7
  • .order-xl-8
  • .order-xl-9
  • .order-xl-10
  • .order-xl-11
  • .order-xl-12

Выравнивание содержимого

Используйте утилиты align-content в контейнерах флексбокса, чтобы гибкие элементы выравнивались «вместе» по одной перекрестной оси. Выбирайте из start (умолчание браузера), end , center , between , around или stretch . Чтобы продемонстрировать эти утилиты, мы применили flex-wrap: wrap и увеличили количество элементов flex.

Внимание! Это свойство не действует на одиночных рядах или одиночных гибких элементах.

Flex

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

Содержание

Включить гибкое поведение

Примените display утилиты для создания контейнера Flexbox и преобразования прямых дочерних элементов в элементы Flex. Гибкие контейнеры и элементы можно дополнительно модифицировать с помощью дополнительных гибких свойств.

Я контейнер Flexbox!

div class="d-flex p-2 bd-highlight">I'm a flexbox container!div>

Я встроенный контейнер Flexbox!

div class="d-inline-flex p-2 bd-highlight">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

Направление

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

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

Элемент гибкости 1
Элемент гибкости 2
Элемент гибкости 3
Элемент гибкости 1
Элемент гибкости 2
Элемент гибкости 3

div class="d-flex flex-row bd-highlight mb-3"> div class="p-2 bd-highlight">Flex item 1div> div class="p-2 bd-highlight">Flex item 2div> div class="p-2 bd-highlight">Flex item 3div> div> div class="d-flex flex-row-reverse bd-highlight"> div class="p-2 bd-highlight">Flex item 1div> div class="p-2 bd-highlight">Flex item 2div> div class="p-2 bd-highlight">Flex item 3div> div>

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

Элемент гибкости 1
Элемент гибкости 2
Элемент гибкости 3
Элемент гибкости 1
Элемент гибкости 2
Элемент гибкости 3

div class="d-flex flex-column bd-highlight mb-3"> div class="p-2 bd-highlight">Flex item 1div> div class="p-2 bd-highlight">Flex item 2div> div class="p-2 bd-highlight">Flex item 3div> div> div class="d-flex flex-column-reverse bd-highlight"> div class="p-2 bd-highlight">Flex item 1div> div class="p-2 bd-highlight">Flex item 2div> div class="p-2 bd-highlight">Flex item 3div> 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

Используйте justify-content служебные программы на контейнерах flexbox, чтобы изменить выравнивание гибких элементов по главной оси (ось 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

Используйте align-items служебные программы в контейнерах flexbox, чтобы изменить выравнивание гибких элементов по поперечной оси (ось 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

Используйте 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 itemdiv> div class="align-self-end">Aligned flex itemdiv> div class="align-self-center">Aligned flex itemdiv> div class="align-self-baseline">Aligned flex itemdiv> div class="align-self-stretch">Aligned flex itemdiv>

Адаптивные варианты также существуют для 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

Fill

Используйте .flex-fill класс для серии элементов-братьев, чтобы заставить их иметь ширину, равную их содержимому (или равную ширину, если их содержимое не превышает их границы), занимая при этом все доступное горизонтальное пространство.

Гибкий элемент с большим количеством контента
Элемент Flex
Элемент Flex

div class="d-flex bd-highlight"> div class="p-2 flex-fill bd-highlight">Flex item with a lot of contentdiv> div class="p-2 flex-fill bd-highlight">Flex itemdiv> div class="p-2 flex-fill bd-highlight">Flex itemdiv> div>

Адаптивные варианты также существуют для flex-fill .

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

Grow и shrink

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

Элемент Flex
Элемент Flex
Третий гибкий элемент

div class="d-flex bd-highlight"> div class="p-2 flex-grow-1 bd-highlight">Flex itemdiv> div class="p-2 bd-highlight">Flex itemdiv> div class="p-2 bd-highlight">Third flex itemdiv> div>

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

Элемент Flex
Элемент Flex

div class="d-flex bd-highlight"> div class="p-2 w-100 bd-highlight">Flex itemdiv> div class="p-2 flex-shrink-1 bd-highlight">Flex itemdiv> div>

Адаптивные варианты также существуют для flex-grow и flex-shrink .

Авто margin

Flexbox может делать несколько замечательных вещей, когда вы смешиваете выравнивание гибкости с автоматическими полями. Ниже показаны три примера управления гибкими элементами с помощью автоматических полей: по умолчанию (без автоматического поля), перемещение двух элементов вправо ( .mr-auto ) и перемещение двух элементов влево ( .ml-auto ).

Элемент Flex
Элемент Flex
Элемент Flex
Элемент Flex
Элемент Flex
Элемент Flex
Элемент Flex
Элемент Flex
Элемент Flex

div class="d-flex bd-highlight mb-3"> div class="p-2 bd-highlight">Flex itemdiv> div class="p-2 bd-highlight">Flex itemdiv> div class="p-2 bd-highlight">Flex itemdiv> div> div class="d-flex bd-highlight mb-3"> div class="mr-auto p-2 bd-highlight">Flex itemdiv> div class="p-2 bd-highlight">Flex itemdiv> div class="p-2 bd-highlight">Flex itemdiv> div> div class="d-flex bd-highlight mb-3"> div class="p-2 bd-highlight">Flex itemdiv> div class="p-2 bd-highlight">Flex itemdiv> div class="ml-auto p-2 bd-highlight">Flex itemdiv> div>

With align-items

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

Элемент Flex
Элемент Flex
Элемент Flex
Элемент Flex
Элемент Flex
Элемент Flex

div class="d-flex align-items-start flex-column bd-highlight mb-3" style="height: 200px;"> div class="mb-auto p-2 bd-highlight">Flex itemdiv> div class="p-2 bd-highlight">Flex itemdiv> div class="p-2 bd-highlight">Flex itemdiv> div> div class="d-flex align-items-end flex-column bd-highlight mb-3" style="height: 200px;"> div class="p-2 bd-highlight">Flex itemdiv> div class="p-2 bd-highlight">Flex itemdiv> div class="mt-auto p-2 bd-highlight">Flex itemdiv> div>

Wrap

Измените способ переноса гибких элементов в гибкий контейнер. Выберите вариант без обтекания (по умолчанию в браузере) .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

Order

Измените визуальный порядок определенных гибких элементов с помощью нескольких order утилит. Мы предоставляем только варианты для того, чтобы сделать элемент первым или последним, а также выполнить сброс для использования порядка DOM. Как и order любое целочисленное значение от 0 до 5, добавьте собственный CSS для любых дополнительных значений.

Первый гибкий элемент
Второй гибкий элемент
Третий гибкий элемент

div class="d-flex flex-nowrap bd-highlight"> div class="order-3 p-2 bd-highlight">First flex itemdiv> div class="order-2 p-2 bd-highlight">Second flex itemdiv> div class="order-1 p-2 bd-highlight">Third flex itemdiv> 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

Кроме того, существуют также адаптивные классы .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

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

Берегись! Это свойство не влияет на отдельные строки гибких элементов.

Основные понятия Flexbox

CSS модуль раскладки Flexible Box, обычно называемый флексбокс или flexbox или просто flex (флекс), был разработан как модель одномерного-направленного макета и как один из методов распределения пространства между элементами в интерфейсе, с мощными возможностями выравнивания. В этой статье даётся краткое описание основных функций flexbox, которые мы рассмотрим более подробно в остальных руководствах.

Когда мы описываем flexbox как одномерно-направленный, мы имеем в виду, что flexbox имеет дело с макетом в одной плоскости за раз – либо в виде строки, либо в виде столбца. Как альтернативу можно упомянуть двумерную модель CSS Grid Layout, которая управляет и столбцами и строками одновременно.

Flexbox: две оси

При работе с flexbox нужно мыслить с точки зрения двух осей – главной оси и побочной оси. Главная ось определяется свойством flex-direction , а побочная ось проходит перпендикулярно ей. Все, что мы делаем с flexbox, относится к этим осям, поэтому стоит с самого начала понять, как они работают.

Главная ось

Главная ось определяется свойством flex-direction , которая может принимать одно из следующих значений:

  • row
  • row-reverse
  • column
  • column-reverse

Если вы выберете row или row-reverse , ваша главная ось будет проходить в горизонтальном направлении (inline direction).

If flex-direction is set to row the main axis runs along the row in the inline direction.

Если вы выберете column или column-reverse , ваша главная ось будет проходить в вертикальном направлении (block direction).

If flex-direction is set to column the main axis runs in the block direction.

Побочная ось

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

If flex-direction is set to row then the cross axis runs in the block direction.

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

If flex-direction is set to column then the cross axis runs in the inline direction.

Понимание того, с какой осью вы работаете (главная или побочная) очень важно для дальнейшего изучения Flexbox.

Начало и конец строки

Важно понимать, что flexbox не делает никаких предположений о режиме написания документа. Раньше CSS был сильно ориентирован на горизонтальный режим и режим письма слева направо. Современные методы вёрстки охватывают полный диапазон режимов письма, и поэтому мы больше не предполагаем, что строка текста будет начинаться в верхнем левом углу документа и будет проходить по направлению к правой стороне, а новые строки будут появляться одна под другой.

Вы можете прочитать больше о взаимосвязи между flexbox и спецификацией Writing Modes в следующей статье, однако следующее описание должно помочь объяснить, почему мы не говорим о левом, правом, верхнем и нижнем направлениях наших flex-элементов.

Если свойству flex-direction задано значение row и вы работаете с английским языком, то начало главной оси будет слева, а конец главной оси – справа.

Working in English the start edge is on the left.

Если бы вы работаете с арабским языком, то начало главной оси будет справа, а конец главной оси – слева.

The start edge in a RTL language is on the right.

В обоих случаях начало побочной оси находится вверху flex контейнера, а конец – внизу, поскольку оба языка имеют режим горизонтальной записи.

Спустя некоторое время становится естественным думать о начале и конце оси, а не о левом и правом краях. Это будет полезно для вас при работе с другими методами, такими как CSS Grid Layout, которые следуют тем же шаблонам.

Flex контейнер

Область документа, использующая flexbox, называется flex контейнером. Чтобы создать flex контейнер, мы задаём значение flex или inline-flex для свойства display контейнера. Как только мы делаем это, прямые потомки этого контейнера становятся flex элементами. Как и для всех свойств в CSS, некоторые начальные значения уже определены, поэтому при создании flex-контейнера все содержащиеся в нем flex-элементы будут вести себя следующим образом.

  • Элементы отображаются в ряд (свойство flex-direction по умолчанию имеет значение row ).
  • Позиционирование элементов начинается от начала главной оси.
  • Элементы не растягиваются по основной оси, но могут сжиматься.
  • Элементы будут растягиваться, чтобы заполнить размер побочной оси.
  • Свойству flex-basis задано значение auto .
  • Свойству flex-wrap задано значение nowrap .

Результатом этого является то, что все ваши элементы будут выстроены в ряд, используя размер содержимого в качестве их размера на главной оси. Если в контейнере больше элементов, чем можно уместить, они не будут обёрнуты и контейнер будет переполнен. Если некоторые элементы выше других, все элементы будут вытянуты вдоль побочной оси, чтобы заполнить ось в полный размер.

Вы можете увидеть принцип работы в живом примере ниже. Попробуйте отредактировать или добавить дополнительные элементы, чтобы проверить поведение flexbox.

Изменение flex-direction

Добавление свойства flex-direction в контейнер позволяет нам изменять направление, в котором отображаются наши элементы flex. Установка flex-direction: row-reverse сохранит порядок отображения элементов вдоль строки, однако начало и конец строки поменяются местами.

Если изменить значение свойства flex-direction на column , главная ось изменится, и наши элементы будут отображаются в столбец. При установке параметра column-reverse , начало и конец столбца поменяются местами.

В приведённом ниже примере значение свойства flex-direction установлено как row-reverse . Попробуйте другие значения — row , column и column-reverse , чтобы посмотреть как изменятся элементы контейнера.

Многострочный флекс-контейнер с flex-wrap

Несмотря на то, что флекс-бокс — это однонаправленная модель, есть возможность завернуть наши флекс-элементы в несколько строк. При этом вы должны рассматривать каждую строку как новый флекс контейнер. Распределение пространства будет происходить на этой конкретной линии, не привязываясь к соседним линиям.

Чтобы включить такое поведение, добавьте параметр flex-wrap со значением wrap . Теперь, как только ваши элементы будут слишком большими для того, чтобы влезать на одну строчку, они будут переноситься на новые строки. Живой пример ниже содержит широкие элементы, у которых общая ширина больше, чем размер контейнера. Так как параметр flex-wrap установлен в значение wrap , элементы переносятся. Если вы установите значение nowrap , то есть в начальное значение, то элементы ужмутся так, чтобы все элементы поместились на одной строке, потому что у них установлено значение, позволяющее им ужиматься при необходимости. Если им запретить ужиматься, или если они не смогут ужаться достаточно сильно, то при установленном значении nowrap будет происходить переполнение контейнера.

Более подробно эту тема разбирается в статье Разбираемся с обёртыванием Flex элементов.

Краткая запись направления и многострочности: flex-flow

Вы можете указать два свойства flex-direction и flex-wrap в одном flex-flow . Первое значение свойства определяет flex-direction , второе flex-wrap .

В приведённом ниже примере вы можете изменить первое значение на одно из доступных для flex-direction — row , row-reverse , column or column-reverse , а второе на wrap или nowrap , чтобы посмотреть как изменятся элементы контейнера.

Свойства, применяемые к флекс-элементам

Управлять поведением флекс-элементов более детально мы можем с помощью их собственных свойств:

В этом обзоре мы лишь кратко рассмотрим эти свойства. Чтобы получить более глубокое понимание обратитесь к руководству Управление соотношением элементов вдоль главной оси.

Чтобы понять как работают эти свойства, прежде нам необходимо разобраться с концепцией доступного пространства. Изменяя значения этих флекс свойств, мы влияем на то, как доступное пространство распределяется между нашими элементами. Эта концепция так же важна для выравнивания элементов.

Если наш контейнер шириной 500 пикселей содержит три элемента шириной 100 пикселей каждый, для их размещения нам потребуется пространство шириной в 300 пикселей. Остаётся 200 пикселей свободного пространства. Если мы не изменим исходные значения этих свойств, флексбокс разместит это пространство за последним элементом.

This flex container has available space after laying out the items.

Если вместо этого мы хотим чтобы элементы росли и заполняли собой свободное пространство, нам нужно указать способ распределения оставшегося пространства между элементами. Это как раз то для чего предназначены flex свойства.

Свойство flex-basis

Свойство flex-basis определяет размер доступного пространства элемента. Начальное значение этого свойства — auto — в этом случае браузер проверяет, имеют ли элементы размер. В приведённом выше примере все элементы имеют ширину 100px, и этот размер читается браузером как flex-basis . Если элементы не имеют размера, то для размера flex-basis используется размер контента. Вот почему, когда мы просто объявляем display: flex на родительском элементе для создания flex-элементов, все элементы перемещаются в ряд и занимают столько места, сколько им нужно для отображения их содержимого.

Свойство flex-grow

With the flex-grow property set to a positive integer, flex items can grow along the main axis from their flex-basis . This will cause the item to stretch and take up any available space on that axis, or a proportion of the available space if other items are allowed to grow too.

If we gave all of our items in the example above a flex-grow value of 1 then the available space in the flex container would be equally shared between our items and they would stretch to fill the container on the main axis.

The flex-grow property can be used to distribute space in proportion. If we give our first item a flex-grow value of 2 and the other items a value of 1, 2 parts will be given to the first item (100px out of 200px in the case of the example above), 1 part each the other two (50px each out of the 200px total).

Свойство flex-shrink

Where the flex-grow property deals with adding space in the main axis, the flex-shrink property controls how it is taken away. If we do not have enough space in the container to lay out our items and flex-shrink is set to a positive integer the item can become smaller than the flex-basis . As with flex-grow different values can be assigned in order to cause one item to shrink faster than others — an item with a higher value set for flex-shrink will shrink faster than its siblings that have lower values.

The minimum size of the item will be taken into account while working out the actual amount of shrinkage that will happen, which means that flex-shrink has the potential to appear less consistent than flex-grow in behavior. We’ll therefore take a more detailed look at how this algorithm works in the article Controlling Ratios of items along the main axis.

Примечание: Note that these values for flex-grow and flex-shrink are proportions. Typically if we had all of our items set to flex: 1 1 200px and then wanted one item to grow at twice the rate, we would set that item to flex: 2 1 200px . However you could use flex: 10 1 200px and flex: 20 1 200px if you wanted.

Краткая запись значений флекс свойств

You will very rarely see the flex-grow , flex-shrink , and flex-basis properties used individually; instead they are combined into the flex shorthand. The flex shorthand allows you to set the three values in this order — flex-grow , flex-shrink , flex-basis .

The live example below allows you to test out the different values of the flex shorthand; remember that the first value is flex-grow . Giving this a positive value means the item can grow. The second is flex-shrink — with a positive value the items can shrink, but only if their total values overflow the main axis. The final value is flex-basis ; this is the value the items are using as their base value to grow and shrink from.

There are also some predefined shorthand values which cover most of the use cases. You will often see these used in tutorials, and in many cases these are all you will need to use. The predefined values are as follows:

  • flex: initial
  • flex: auto
  • flex: none
  • flex:

Setting flex: initial resets the item to the initial values of Flexbox. This is the same as flex: 0 1 auto . In this case the value of flex-grow is 0, so items will not grow larger than their flex-basis size. The value of flex-shrink is 1, so items can shrink if they need to rather than overflowing. The value of flex-basis is auto . Items will either use any size set on the item in the main dimension, or they will get their size from the content size.

Using flex: auto is the same as using flex: 1 1 auto ; everything is as with flex:initial but in this case the items can grow and fill the container as well as shrink if required.

Using flex: none will create fully inflexible flex items. It is as if you wrote flex: 0 0 auto . The items cannot grow or shrink but will be laid out using flexbox with a flex-basis of auto .

The shorthand you often see in tutorials is flex: 1 or flex: 2 and so on. This is as if you used flex: 1 1 0 . The items can grow and shrink from a flex-basis of 0.

Try these shorthand values in the live example below.

Alignment, justification and distribution of free space between items

A key feature of flexbox is the ability to align and justify items on the main- and cross-axes, and to distribute space between flex items.

align-items

The align-items property will align the items on the cross axis.

The initial value for this property is stretch and this is why flex items stretch to the height of the tallest one by default. They are in fact stretching to fill the flex container — the tallest item is defining the height of that.

You could instead set align-items to flex-start in order to make the items line up at the start of the flex container, flex-end to align them to the end, or center to align them in the centre. Try this in the live example — I have given the flex container a height in order that you can see how the items can be moved around inside the container. See what happens if you set the value of align-items to:

  • stretch
  • flex-start
  • flex-end
  • center

justify-content

The justify-content property is used to align the items on the main axis, the direction in which flex-direction has set the flow. The initial value is flex-start which will line the items up at the start edge of the container, but you could also set the value to flex-end to line them up at the end, or center to line them up in the centre.

You can also use the value space-between to take all the spare space after the items have been laid out, and share it out evenly between the items so there will be an equal amount of space between each item. To cause an equal amount of space on the right and left of each item use the value space-around . With space-around , items have a half-size space on either end. Or, to cause items to have equal space around them use the value space-evenly . With space-evenly , items have a full-size space on either end.

Try the following values of justify-content in the live example:

  • flex-start
  • flex-end
  • center
  • space-around
  • space-between
  • space-evenly

In the article Aligning Items in a Flex Container we will explore these properties in more depth, in order to have a better understanding of how they work. These simple examples however will be useful in the majority of use cases.

Next steps

After reading this article you should have an understanding of the basic features of Flexbox. In the next article we will look at how this specification relates to other parts of CSS (en-US) .

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

This page was last modified on 3 авг. 2023 г. by MDN contributors.

Flex

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

На этой странице

Включить гибкое поведение

Примените утилиты display для создания контейнера flexbox и преобразования прямых дочерних элементов в элементы flex. Гибкие контейнеры и элементы можно дополнительно модифицировать с помощью дополнительных свойств гибкости.

Я контейнер Flexbox!

div class="d-flex p-2 bd-highlight">Я контейнер Flexbox!div>

Я встроенный контейнер Flexbox!

div class="d-inline-flex p-2 bd-highlight">Я встроенный контейнер Flexbox!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

Направление

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

Используйте .flex-row , чтобы установить горизонтальное направление (по умолчанию в браузере), или .flex-row-reverse , чтобы начать горизонтальное направление с противоположной стороны.

Флекс элемент 1
Флекс элемент 2
Флекс элемент 3
Флекс элемент 1
Флекс элемент 2
Флекс элемент 3

div class="d-flex flex-row bd-highlight mb-3"> div class="p-2 bd-highlight">Флекс элемент 1div> div class="p-2 bd-highlight">Флекс элемент 2div> div class="p-2 bd-highlight">Флекс элемент 3div> div> div class="d-flex flex-row-reverse bd-highlight"> div class="p-2 bd-highlight">Флекс элемент 1div> div class="p-2 bd-highlight">Флекс элемент 2div> div class="p-2 bd-highlight">Флекс элемент 3div> div>

Используйте .flex-column , чтобы задать вертикальное направление, или .flex-column-reverse , чтобы задать вертикальное направление с противоположной стороны.

Флекс элемент 1
Флекс элемент 2
Флекс элемент 3
Флекс элемент 1
Флекс элемент 2
Флекс элемент 3

div class="d-flex flex-column bd-highlight mb-3"> div class="p-2 bd-highlight">Флекс элемент 1div> div class="p-2 bd-highlight">Флекс элемент 2div> div class="p-2 bd-highlight">Флекс элемент 3div> div> div class="d-flex flex-column-reverse bd-highlight"> div class="p-2 bd-highlight">Флекс элемент 1div> div class="p-2 bd-highlight">Флекс элемент 2div> div class="p-2 bd-highlight">Флекс элемент 3div> 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, чтобы изменить выравнивание элементов Флекс по главной оси (ось x для начала, ось y, если flex-direction: column ). Выберите start (по умолчанию в браузере), end , center , between , around или evenly .

Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент

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, чтобы изменить выравнивание элементов Флекс по поперечной оси (ось Y в начале, ось X, если flex-direction: column ). Выберите start , end , center , baseline или stretch (по умолчанию в браузере).

Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент

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 ). Выберите один из тех же параметров, что и flex-direction: column ). Выберите один из тех же вариантов, что и align-items : start , end , center , baseline или stretch (по умолчанию в браузере).

Флекс элемент
Выровненный Флекс элемент
Флекс элемент
Флекс элемент
Выровненный Флекс элемент
Флекс элемент
Флекс элемент
Выровненный Флекс элемент
Флекс элемент
Флекс элемент
Выровненный Флекс элемент
Флекс элемент
Флекс элемент
Выровненный Флекс элемент
Флекс элемент

div class="align-self-start">Выровненный Флекс элементdiv> div class="align-self-end">Выровненный Флекс элементdiv> div class="align-self-center">Выровненный Флекс элементdiv> div class="align-self-baseline">Выровненный Флекс элементdiv> div class="align-self-stretch">Выровненный Флекс элемент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 для серии родственных элементов, чтобы заставить их ширину равную их содержимому (или равную ширину, если их содержимое не превышает их границы), занимая при этом все доступное горизонтальное пространство.

Флекс элемент с большим количеством контента
Флекс элемент
Флекс элемент

div class="d-flex bd-highlight"> div class="p-2 flex-fill bd-highlight">Флекс элемент с большим количеством контентаdiv> div class="p-2 flex-fill bd-highlight">Флекс элементdiv> div class="p-2 flex-fill bd-highlight">Флекс элементdiv> div>

Адаптивные варианты также существуют для flex-fill .

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

Увеличиваться и сжимайся

Используйте утилиты .flex-grow-* для переключения способности элемента Флекс расти, чтобы заполнить доступное пространство. В приведенном ниже примере элементы .flex-grow-1 используют все доступное пространство, которое могут, а оставшимся двум элементам Флекс их необходимое пространство.

Флекс элемент
Флекс элемент
Third Флекс элемент

div class="d-flex bd-highlight"> div class="p-2 flex-grow-1 bd-highlight">Флекс элементdiv> div class="p-2 bd-highlight">Флекс элементdiv> div class="p-2 bd-highlight">Third Флекс элементdiv> div>

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

Флекс элемент
Флекс элемент

div class="d-flex bd-highlight"> div class="p-2 w-100 bd-highlight">Флекс элементdiv> div class="p-2 flex-shrink-1 bd-highlight">Флекс элементdiv> div>

Адаптивные варианты также существуют для flex-grow и flex-shrink .

Автоматические поля

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

Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент

div class="d-flex bd-highlight mb-3"> div class="p-2 bd-highlight">Флекс элементdiv> div class="p-2 bd-highlight">Флекс элементdiv> div class="p-2 bd-highlight">Флекс элементdiv> div> div class="d-flex bd-highlight mb-3"> div class="me-auto p-2 bd-highlight">Флекс элементdiv> div class="p-2 bd-highlight">Флекс элементdiv> div class="p-2 bd-highlight">Флекс элементdiv> div> div class="d-flex bd-highlight mb-3"> div class="p-2 bd-highlight">Флекс элементdiv> div class="p-2 bd-highlight">Флекс элементdiv> div class="ms-auto p-2 bd-highlight">Флекс элементdiv> div>

С помощью align-items

Вертикально переместите один элемент Флекс вверх или вниз контейнера, смешав align-items , flex-direction: column и margin-top: auto или margin-bottom: auto .

Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент

div class="d-flex align-items-start flex-column bd-highlight mb-3" style="height: 200px;"> div class="mb-auto p-2 bd-highlight">Флекс элементdiv> div class="p-2 bd-highlight">Флекс элементdiv> div class="p-2 bd-highlight">Флекс элементdiv> div> div class="d-flex align-items-end flex-column bd-highlight mb-3" style="height: 200px;"> div class="p-2 bd-highlight">Флекс элементdiv> div class="p-2 bd-highlight">Флекс элементdiv> div class="mt-auto p-2 bd-highlight">Флекс элементdiv> div>

Обертка

Измените способ обертки элементов Флекс в гибкий контейнер. Выберите полное отсутствие переноса (по умолчанию в браузере) с помощью .flex-nowrap , обертывание с помощью .flex-wrap или обратное обертывание с помощью .flex-wrap-reverse .

Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент

div class="d-flex flex-nowrap"> . div> 

Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент

div class="d-flex flex-wrap"> . div> 

Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент

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

Порядок

Измените визуальный порядок определенных элементов Флекс с помощью нескольких утилит order . Мы предоставляем только варианты создания элемента первым или последним, а также сброс для использования порядка DOM. Поскольку order принимает любое целочисленное значение от 0 до 5, добавьте собственный CSS для любых дополнительных значений.

First Флекс элемент
Second Флекс элемент
Third Флекс элемент

div class="d-flex flex-nowrap bd-highlight"> div class="order-3 p-2 bd-highlight">First Флекс элементdiv> div class="order-2 p-2 bd-highlight">Second Флекс элементdiv> div class="order-1 p-2 bd-highlight">Third Флекс элемент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

Кроме того, существуют также адаптивные классы .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 для выравнивания элементов Флекс вместе по поперечной оси. Выберите start (по умолчанию для браузера), end , center , between , around или stretch . Чтобы продемонстрировать эти утилиты, мы ввели в действие flex-wrap: wrap и увеличили количество элементов Флекс.

Внимание! Это свойство не влияет на отдельные строки элементов Флекс.

Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент

div class="d-flex align-content-start flex-wrap"> . div> 

Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент

div class="d-flex align-content-end flex-wrap">. div> 

Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент

div class="d-flex align-content-center flex-wrap">. div> 

Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент

div class="d-flex align-content-between flex-wrap">. div> 

Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент

div class="d-flex align-content-around flex-wrap">. div> 

Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент
Флекс элемент

div class="d-flex align-content-stretch flex-wrap">. div> 

Адаптивные варианты также существуют для align-content .

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

Медиа объект

Хотите скопировать компонент мультимедийного объекта из Bootstrap 4? В мгновение ока воссоздайте его с помощью нескольких гибких утилит, которые обеспечивают еще большую гибкость и настройку, чем раньше.

Placeholder

Это какой-то контент из медиа-компонента. Вы можете заменить его любым содержимым и при необходимости отрегулировать его.

div class="d-flex"> div class="flex-shrink-0"> img src=". " alt=". "> div> div class="flex-grow-1 ms-3"> Это какой-то контент из медиа-компонента. Вы можете заменить его любым содержимым и при необходимости отрегулировать его. div> div>

And say you want to vertically center the content next to the image:

Placeholder

Это какой-то контент из медиа-компонента. Вы можете заменить его любым содержимым и при необходимости отрегулировать его.

div class="d-flex align-items-center"> div class="flex-shrink-0"> img src=". " alt=". "> div> div class="flex-grow-1 ms-3"> Это какой-то контент из медиа-компонента. Вы можете заменить его любым содержимым и при необходимости отрегулировать его. div> div>

Sass

API утилит

Утилиты флексбокс объявлены в нашем 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 ), "gap": ( responsive: true, property: gap, class: gap, values: $spacers ), "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, ), ), 
  • Разработан и построен с любовью в мире командой Bootstrap с помощью наших участников.
  • Код под лицензией MIT, документация CC BY 3.0.
  • Текущая версия v5.0.2.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *