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

Class d flex что это

  • автор:

Bootstrap 4 — Классы для работы с flexbox

Bootstrap 4 - Классы для работы с flexbox

Основное назначение flex классов Bootstrap — это удобное и быстрое создание flex-контейнеров, а также адаптивное (на всех контрольных точках) управление раскладкой flex-элементов внутри них.

Flexbox – это CSS технология, которая предназначена для создания гибких макетов сайтов и веб-приложений. Она является неотъемлемой частью Bootstrap 4 и положена в работу не только сетки, но и его компонентов. Более подробно ознакомиться с CSS Flexbox можно в этой статье.

Создание flex-контейнера

Для того чтобы в Bootstrap 4 некоторый элемент на странице сделать flex-контейнером к нему необходимо добавить класс d-flex или d-inline-flex . После этого все дочерние элементы flex-контейнера (дети) автоматически станут flex-элементами.

Первый класс ( d-flex ) используется, когда flex-контейнер необходимо представить по отношению к окружающим его элементам (neighbor, соседям) блочным (block). А второй класс ( d-inline-flex ) применяется тогда, когда его нужно представить строчным (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

Расположение flex-элементов во flex-контейнере

Выкладывание flex-элементов во flex-контейнере осуществляется линиями.

Направление расположения элементов в пределах линии определяется главной осью. По умолчанию она направлена горизонтально слева направо ( flex-direction: row ).

Тем не менее, бывают ситуации, когда вам необходимо установить это явно. Для этого к flex-контейнеру необходимо добавить класс flex-row .

Bootstrap Flexbox - Класс flex-row

Задание обратного порядка следования flex-элементов во flex-контейнере осуществляется посредством установления главной оси направления справа налево ( flex-direction: row-reverse ). В Bootstrap 4 это действие осуществляется с помощью класса flex-row-reverse .

Bootstrap Flexbox - Класс flex-row-reverse

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

Bootstrap Flexbox - Классы flex-column и flex-column-reverse

Расположение flex-элементов на нескольких линиях

По умолчанию flex-элементы во flex-контейнере располагаются на одной линии, даже если им не хватает места. Если при каких-то обстоятельствах это необходимо установить явно, то к flex-контейнеру необходимо добавить Bootstrap класс flex-nowrap .

Разрешить перенос flex-элементов но новые линии в Bootstrap 4 осуществляется посредством добавления к flex-контейнеру класса flex-wrap или flex-wrap-reverse .

Данные классы определяют направление поперечной оси, и, следовательно, то, как flex-элементы будут выкладываться во flex-контейнере.

Направление главной оси Направление поперечной оси
flex-row (слева направо) flex-wrap (сверху вниз)
flex-wrap-reverse (снизу вверх)
flex-row-reverse (справа налево) flex-wrap (сверху вниз)
flex-wrap-reverse (снизу вверх)
flex-column (сверху вниз) flex-wrap (слева направо)
flex-wrap-reverse (справа налево)
flex-column-reverse (снизу вверх) flex-wrap (слева направо)
flex-wrap-reverse (справа налево)

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

Выравнивание элементов во flex-контейнере можно осуществлять по 2 направлениям (главной и поперечной осям).

Выравнивание flex-элементов в направлении главной оси

Выравнивание flex-элементов во flex-контейнере вдоль направления основной оси осуществляется посредством класса justify-content{-breakpoint}-? .

В данном классе следует заменить:

  • breakpoint на название контрольной точки, начиная с которой будет применяться указанное выравнивание (без обозначения — начиная с самых крохотных устройств);
  • ? на направление выравнивания: start (по умолчанию), end , center , between или around .

Добавлять класс justify-content{-breakpoint}-? необходимо к flex-контейнеру.

Список всех классов 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 .

Например, выровняем flex-элементы в направлении главной оси на всех устройствах по центру.

Например, выровняем flex-элементы внутри flex-контейнера на контрольных точках xs и sm равномерно (between), на md и lg по центру, а на xl относительно конца оси.

Bootstrap Flexbox - Выравнивание flex-элементов в направлении главной оси

 
1
2
3

Выравнивание flex-элементов в направлении поперечной оси

Выравнивание flex-элементов относительно линии в направлении поперечной оси осуществляется с помощью класса align-items{-breakpoint}-? .

В данном классе нужно вместо:

  • breakpoint указать название контрольной точки, начиная с которой будет применяться указанное выравнивание (без обозначения — начиная с самых крохотных устройств).
  • ? ввести направление выравнивания: start , end , center , baseline или stretch (по умолчанию).

Применять класс align-items{-breakpoint}-? необходимо к flex-контейнеру.

Список всех классов 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 .

Например, выровняем flex-элементы (в направлении поперечной оси) на контрольных точках xs , sm и md относительно конца (end) линии, а на lg и xl по центру.

Bootstrap Flexbox - Выравнивание flex-элементов в направлении поперечной оси

 
1
2
3
4
5
6

Изменение выравнивания конкретно выбранного flex-элемента

Выравнивание некоторого (определённого) flex-элемента относительно линии в направлении поперечной оси осуществляется с помощью класса align-items{-breakpoint}-? .

В данном классе нужно вместо:

  • breakpoint указать название контрольной точки, начиная с которой будет применяться указанное выравнивание к flex-элементу (без обозначения — начиная с самых крохотных устройств).
  • ? указать направление выравнивания: start , end , center , baseline или stretch (по умолчанию).

Применять класс align-self{-breakpoint}-? необходимо к 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 .

Например, выровняем первый flex-элемент в направлении поперечной оси (в пределах линии) относительно начала оси, а последний — относительно конца оси.

Bootstrap Flexbox - Изменение выравнивания конкретно выбранного flex-элемента в направлении поперечной оси

 
1
2
3

Выравнивание линий flex-контейнера

Выравнивание линий во flex-контейнере (в направлении поперечной оси) осуществляется с помощью класса align-content{-breakpoint}-? .

В данном классе необходимо вместо:

  • breakpoint указать название контрольной точки, начиная с которой будет действовать данное выравнивание (без обозначения — начиная с самых крохотных устройств).
  • ? направление выравнивания: start , end , center , between , around или stretch (по умолчанию)

Применять класс align-content{-breakpoint}-? необходимо к flex-контейнерам.

Список всех классов 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 .

Например, расположим линии flex-контейнера на маленьких устройствах ( xs , sm , md ) относительно начала поперечной оси, а на больших устройствах ( lg , xl ) по центру.

Bootstrap Flexbox - Выравниваний линий flex-контейнера (в направлении поперечной оси)

 
1-1
1-2
1-3
2-1
2-2
2-3

Смещение адаптивных блоков с помощью margin

Во Flexbox можно получить удивительные вещи, если смешать flex-выравнивание с auto margin.

Например, рассмотрим, как во Flexbox можно очень просто расположить одни flex-элементы слева, а другие справа.

Bootstrap Flexbox - Пример смешивания justify-content c margin auto

  
1
2
3
1
2
3

Аналогичным способом, можно одни flex-элементы поместить сверху, а другие снизу.

Bootstrap Flexbox - Пример смешивания align-items c margin auto

  
1
2
3
1
2
3

Изменение порядка следования элементов во flex-контейнере

Изменение визуального порядка следования flex-элементов во flex-контейнере осуществляется с помощью класса order{-breakpoint}-? .

В данном классе необходимо вместо:

  • breakpoint указать название контрольной точки, начиная с которой будет применяться CSS-свойство для упорядочивания flex-элементов (без обозначения — начиная с самых крохотных устройств).
  • ? задать число от 1 до 12. Это число является порядковым номером элемента во flex-контейнере.

Например, необходимо чтобы flex-элементы на маленьких устройствах следовали 1->2->3, на больших устройствах 1->3->2.

Bootstrap Flexbox - Изменение визуального порядка следования элементов во flex-контейнере

 
1
2
3

Flex-утилиты для построения адаптивного макета на Bootstrap 4

Адаптивная сетка Bootstrap 4 построена на основе модели Flexbox. Основой для использования адаптивных классов является класс row в качестве родительского контейнера для нескольких классов типа col-префих-цифра . Для класса row задано свойство display: flex , а дочерние элементы делят его пространство в соответствии с префиксом и цифрой на равные части, но для разных разрешений экрана.
Например,

.row+.col-sm-4*3
< h3 >col — sm — 4 < / h3 >
< p >Lorem ipsum dolor sit amet , consectetur adipisicing elit . Debitis dolorem ,
aliquam temporibus numquam quos eaque rem omnis a eligendi ut ? < / p >
< h3 >col — sm — 4 < / h3 >
< p >Inventore deleniti minus , accusantium harum iste vel blanditiis quis ,
ad perspiciatis error quas impedit quidem aperiam veritatis temporibus libero nobis . < / p >
< h3 >col — sm — 4 < / h3 >
< p >Voluptatum itaque amet , voluptates maiores autem reiciendis voluptatem ,
reprehenderit eum earum nisi ratione sunt sed aut quod rem , officia cum ! < / p >

CSS-свойства для классов, использованных в примере, представлены на скриншотах ниже.
Класс row. CSS-свойства
col-sm-4

Однако, есть еще масса утилит, которые вы можете использовать как внутри классов row или col-. , так и самостоятельно.

Flex-утилиты

Блоки с display: flex

У класса row помимо свойства display: flex есть еще 2 свойства, связанных с компенсацией правого и левого отступа внутри класса container(container-fluid) . Это margin-left и margin-right в 15px . За счет этих отрицательных внешних отступов не стоит использовать класс row вне класса container или container-fluid , css-свойства которых таковы:

Классы container и container-fluid

Для того чтобы назначить какому-либо блоку css-свойство display: flex , используйте класс .d-flex или один из «отзывчивых» вариантов ( .d-sm-flex , .d-md-flex , .d-lg-flex или .d-xl-flex ). В случае, если для элемента нужно свойство display: inline-flex в Bootstrap4 предусмотрены класс .d-inline-flex и его разновидности .d-sm-inline-flex , .d-md-inline-flex , .d-lg-inline-flex или .d-xl-inline-flex .

Направление внутри flex-блоков

Как известно, по умолчанию все flexbox-контейнеры имеют направление вдоль главной оси (свойство flex-direction: row). Вы можете изменять направление с помощью таких классов Bootstrap-4:

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

К каждому из перечисленных классов могут быть добавлены адаптивные приставки -sm-, -md-, -lg-, -xl-. Например, можно использовать класс .flex-sm-row или .flex-md-column , или .flex-lg-row-reverse , или .flex-xl-column-reverse и подобные.

Выравнивание содержимого внутри flexbox-контейнера

Наверняка вам пригодятся утилиты, связанные с css-свойством justify-content для flexbox-контейнеров, чтобы изменять выравнивания flex-элементов по главной оси (горизонтальная ось X по умолчанию и вертикальная ось Y, если flex-direction: column ). Классы, предоставляемые css-файлами Bootstrap-4 предлагают на выбор варианты суффиксов start (умолчание браузера), end , center , between или around :

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

Сложно сказать, какой из них вы выберете для своей верстки, но думается, что самыми популярными будут классы .justify-content-center , .justify-content-between , и .justify-content-around , т.к. чаще всего приходится либо центрировать контент, либо распределять несколько блоков по ширине родительского элемента.

Перенос блоков с помощью свойства flex-wrap

Для flex-контейнера можно выбрать класс для переноса дочерних блоков, не помещающихся по ширине контейнера на следующую строку ( .flex-wrap ). Если нужно изменить порядок отображения блоков при переносе, то нужен класс .flex-wrap-reverse . По умолчанию перенос не выполняется, но если вам это нужно указать явно, используйте класс .flex-nowrap . Как и для других классов, использование переносов возможно только для определенных разрешений экрана с отзывчивыми утилитами:

  • .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

Рассмотрим реальный пример, в котором внутри родительского контейнера нужно разместить 4 квадратных блока с небольшим количеством информации в каждом, причем при изменении ширины экрана они должны перестроиться в 2 столбца (планшет) или 1 столбец (телефон).

Для реализации этого примера были использованы классы .d-flex , .justify-content-around и .flex-wrap для разделения блоков равными промежутками и переноса их на новую строку при уменьшении ширины контейнера. На вкладке HTML можно посмотреть разметку, а вкладка CSS содержит код стилей.

Выравнивание элементов внутри flex-контейнера заданной высоты

Если высота flex-контейнера больше, чем размер вложенных в нее блоков, вы можете использовать flex-утилиты, основанные на свойстве align-items для изменения выравнивания дочерних элементов по перекрестной оси (ось Y по умолчанию ( flex-direction: row ) и ось X, если задано свойство flex-direction: column ). Названия классов основаны на названии самого свойства+его значение: stretch (идет по умолчанию), start , end , center , baseline .

Основные классы:
  • .align-items-start
  • .align-items-end
  • .align-items-center
  • .align-items-baseline
  • .align-items-stretch
Классы с префиксами:
  • .align-items-sm-start , .align-items-md-start , .align-items-lg-start , .align-items-xl-start
  • .align-items-sm-end , .align-items-md-end , .align-items-lg-end , .align-items-xl-end
  • .align-items-sm-center , .align-items-md-center , .align-items-lg-center , .align-items-xl-center
  • .align-items-sm-baseline , .align-items-md-baseline , .align-items-lg-baseline , .align-items-xl-baseline
  • .align-items-sm-stretch , .align-items-md-stretch , .align-items-lg-stretch , .align-items-xl-stretch

Довольно часто выравнивание различного типа необходимо использовать в верхней части страницы — в теге или в различных слайдерах.

Пример, размещенный ниже, интересен тем, что для формирования блоков заголовочной части сайта использованы такие классы, как .justify-content-between и .align-items-end . В блоках с текстом, размещенных внутри основного flex-контейнера использован класс .align-items-center , позволяющий центрировать элементы друг относительно друга. Переключайте вкладки HTML и CSS, чтобы посмотреть разметку и стилевые правила.

Индивидуальное выравнивание элементов внутри flex-контейнера заданной высоты

В том случае, когда вам нужно выравнять только один или часть элементов из расположенных в одном ряду по высоте, вы можете использовать классы Bootstrap-4, начинающиеся с align-self :

  • .align-self-start
  • .align-self-end
  • .align-self-center
  • .align-self-baseline
  • .align-self-stretch

Как и у других классов, здесь можно применить отзывчивые префиксы, чтобы получить класс, работающий на одном или нескольких разрешениях экрана:

  • .align-self-(sm, md, lg, xl)-start
  • .align-self-(sm, md, lg, xl)-end
  • .align-self-(sm, md, lg, xl)-center
  • .align-self-(sm, md, lg, xl)-baseline
  • .align-self-(sm, md, lg, xl)-stretch

Надеюсь, вы понимаете, что префикс должен быть только один — либо -sm- , либо -md- , либо -lg- , либо -xl- , указывать все через запятую нельзя.

В примере ниже блоки с классом .team-member внутри flex-контейнера с минимальной высотой в 600px расположены «лесенкой» за счет использования таких классов, как .align-self-md-start , align-self-md-center и .align-self-md-end . За счет этого первый блок размещается вверху контейнера, второй — посередине, а третий — внизу. Поскольку каждому из этих блоков задано свойство max-width: 30% , a при уменьшении ширины экрана их высота выравнивается и приближается к высоте родительского контейнера, использован класс с приставкой -md- . Также у родительского элемента были добавлены рассмотренные ранее класс .justify-content-sm-between для распределения дочерних блоков внутри него с одинаковыми промежутками между ними, и класс .flex-wrap для переноса блоков на маленьких экранах при отмене значения max-width :

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 и увеличили количество гибких элементов.

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

CSS Flexbox в Bootstrap 4

В этой статье вы узнаете о том, как работает CSS Flexbox в таком мощном фреймворке, как Bootstrap 4. Да, эти свойства можно прописывать и в самом CSS, что делает процесс разработки более гибким, придавая больше возможностей, но всё же это Bootstrap и бывают моменты, когда знание того, как можно в нём применять CSS Flexbox на уровне классов, даёт вам много преимуществ и значительно экономит время.

Это предпоследняя статья из серии CSS Flexbox, скоро всё будет систематизировано и добавлено в одну большую статью с пояснениями.

��Мой Твиттер — там много из мира фронтенда, да и вообще поговорим��. Подписывайтесь, будет интересно: ) ✈️

Классы d-flex и flex-row

В первом примере мы рассмотрим такие классы из Bootstrap 4, как d-flex и flex-row :

d-flex flex-row my-flex-container">
1

2

3

Используя два эти класса, мы создаем flex контейнер, который выставляет все элементы в один ряд.

Результат в браузере должен выглядеть примерно так:

Классы d-flex, flex-row-reverse

Измените класс flex-row на класс flex-row-reverse :

flex-row-reverse my-flex-container">
1

2

3

Результат станет таким:

Классы justify-content-start, justify-content-center, justify-content-end, justify-content-around, justify-content-between

Дальше мы поговорим о классах justify-content-start , justify-content-center , justify-content-end , justify-content-around , justify-content-between . Если мы применяем эти классы флекс строке, то мы таким образом выравниваем контент горизонтально. Если же мы применяем эти классы флекс колонке, то мы выравниваем контент вертикально.

Применяя justify-content-start на примере выше:

justify-content-start my-flex-container">
1

2

3

justify-content-center my-flex-container">
1

2

3

Теперь применяем justify-content-end :

justify-content-end my-flex-container">
1

2

3

Как результат, получаем:

Теперь смотрим, что будет если применить класс justify-content-around :

justify-content-around my-flex-container">
1

2

3

А с justify-content-between :

justify-content-between my-flex-container">
1

2

3

Классы flex-column и flex-column-reverse

Теперь давайте сменим строчный flex на колоночный, применив класс flex-column :

flex-column my-flex-container-column">
1

2

3

Теперь все флекс элементы отображаются в одну колонку:

А ещё, мы можем поменять порядок расстановки элементов в колонке, применив класс flex-column-reverse :

flex-column-reverse my-flex-container-column">
1

2

3

Как результат, мы получим:

Классы ALIGN-items-start, align-items-center, align-items-end

Ну а теперь, давайте вернемся к флекс контейнеру со строчной раскладкой и посмотрим на то, как бы мы смогли вертикально выравнивать элементы в контейнере, применяя такие удобные классы, как align-items-start , align-items-center и align-items-end .

Для начала, давайте посмотрим на то, что же произойдет если мы применим класс align-items-start :

align-items-start my-flex-container">
1

2

3

А произойдет вот что:

Меняем на align-items-center :

align-items-center my-flex-container">
1

2

3

И под конец, используем класс align-items-end :

align-items-end my-flex-container">
1

2

3

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

Используем классы align-self-start, align-self-center, align-self-end

Есть классы в CSS Bootstrap 4, которые можно применить к одиночному флекс элементу: align-selft-start , align-selft-center и align-self-end .

В этом примере, align-self-start применяется ко второму флекс элементу, высота которого в два раза меньше, чем высота первого и второго:


1

align-self-start my-flex-item">2

3

Теперь применяем align-self-center :


1

align-self-center my-flex-item">2

3

А с align-self-end , получаем вот что:


1

align-self-end my-flex-item">2

3

Обёртывание flex элементов

Обёртывание флекс элементов может контролироваться также применением CSS классов. Давайте сначала посмотрим на дефолтный враппинг без применения специальных классов:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

В результате мы видим, что никакого врапинга не происходит. Элементы выходят за пределы доступного места в флекс контейнере:

Добавляем класс flex-wrap :

flex-wrap my-flex-container">
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

Теперь результат меняется. Врапинг работает и флекс элементы, которые не помещаются в первую строку, автоматически ставятся во вторую:

Ещё можно использовать flex-wrap-reverse :

flex-wrap-reverse my-flex-container">
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

Тогда мы получим вот такой эффект:

Order

Ещё вы можете выставить порядок отображения флекс элементу, используя CSS класс order-[x] , как в следующем примере:


order-3 my-flex-item">1

order-1 my-flex-item">2

order-2 my-flex-item">3

В результате вы увидите, что второй элемент показывается на месте первого, так как у него стоит класс order-1 :

Auto Margin’ы

Ещё одна вещь, которая может применяться к единичным flex элементам это внешние отступы. Тут можно поиграться с такими классами:

mr-auto : добавляет внешний отступ с правой стороны элемента.

ml-auto : добавляет внешний отступ с левой стороны элемента.

mt-auto : добавляет внешний отступ сверху

mb-auto : добавляет внешний отступ снизу

Давайте снова прибегнем к строчному флекс примеру и применим класс mr-auto для первого элемента:


mr-auto my-flex-item">1

2

3

Результат теперь должны выглядеть так:

А применение mt-auto , приведет к такому:


mt-auto my-flex-item">1

2

3

Вариации адаптивности

Вы можете использовать адаптивные вариации для всех классов Bootstrap 4, таким образом, что эти классы будут применены только на соответствующих размерах экранов:


1

2

3

Применение align-self-lg-end для второго элемента на больших экранах:

Применение align-self-md-center для того же элемента, но только на экранах среднего размера:

align-self-sd-start для маленьких экранов:

Больше про Bootstrap 4 вы можете прочитать в следующих статьях:

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

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