Используйте всю мощь flexbox для создания самых сложных шаблонов.
Компонент Flex играет важную роль в UIkit, начиная с версии 2. Многие компоненты, например, Grid, а также Навигационные панели, Субнавигация, Хлебные крошки, Пагинация, Вкладки и Точечная навигация основаны на flexbox и могут использоваться вместе с классами утилит из этого компонента.
Как использовать компонент Flex в UIkit 3. Используем FlexBox правильно.
Чтобы применить гибкую систему flexbox, используйте один из следующих классов. По умолчанию все элементы в контейнере flex выровнены по левому краю по ширине и равны по высоте.
Класс | Описание |
---|---|
.uk-flex |
Flex контейнер и ведет себя как блочный элемент. |
.uk-flex-inline |
Flex контейнер и ведет себя как встроенный элемент. |
<div class="uk-flex">
<div></div>
</div>
- Элемент 1Элемент 2Элемент 3
<div class="uk-flex"> <div class="uk-card uk-card-default uk-card-body">Элемент 1</div> <div class="uk-card uk-card-default uk-card-body uk-margin-left">Элемент 2</div> <div class="uk-card uk-card-default uk-card-body uk-margin-left">Элемент 3</div> </div>
Горизонтальное выравнивание
Эти классы определяют горизонтальное выравнивание flex элементов и распределяют свободное пространство между ними.
Добавьте один или несколько из них во flex контейнер, чтобы настроить выравнивание. По умолчанию элементы Flex выровнены по левому краю, как и в случае применения класса .uk-flex-left
.
Класс | Описание |
---|---|
.uk-flex-left |
Добавьте этот класс, чтобы выровнять flex-элементы по левому краю. |
.uk-flex-center |
Добавьте этот класс для центрирования элементов вдоль главной оси. |
.uk-flex-right |
Добавьте этот класс, чтобы выровнять flex-элементы по правому краю. |
.uk-flex-between |
Добавьте этот класс для равномерного распределения элементов с одинаковым пространством между элементами вдоль главной оси. |
.uk-flex-around |
Добавьте этот класс для равномерного распределения элементов с равными расстояниями по обеим сторонам каждого элемента. |
<div class="uk-flex uk-flex-center">
<div></div>
</div>
- Элемент 1Элемент 2Элемент 3
<div class="uk-flex uk-flex-center"> <div class="uk-card uk-card-default uk-card-body">Элемент 1</div> <div class="uk-card uk-card-default uk-card-body uk-margin-left">Элемент 2</div> <div class="uk-card uk-card-default uk-card-body uk-margin-left">Элемент 3</div> </div>
Адаптивность
UIkit предоставляет несколько адаптивных классов для горизонтального выравнивания. Они работают так же, как обычные классы выравнивания flex, но имеют суффиксы, которые работают с определенных контрольных точек.
Класс | Описание |
---|---|
.uk-flex-left@s .uk-flex-center@s .uk-flex-right@s .uk-flex-between@s .uk-flex-around@s |
Работает на устройствах с разрешением 640px и более. |
.uk-flex-left@m .uk-flex-center@m .uk-flex-right@m .uk-flex-between@m .uk-flex-around@m |
Работает на устройствах с разрешением 960px и более. |
.uk-flex-left@l .uk-flex-center@l .uk-flex-right@l .uk-flex-between@l .uk-flex-around@l |
Работает на устройствах с разрешением 1200px и более. |
.uk-flex-left@xl .uk-flex-center@xl .uk-flex-right@xl .uk-flex-between@xl .uk-flex-around@xl |
Работает на устройствах с разрешением of 1600px и более. |
<div class="uk-flex uk-flex-center@m uk-flex-right@l">
<div></div>
</div>
- Элемент 1Элемент 2Элемент 3
<div class="uk-flex uk-flex-center@m uk-flex-right@l"> <div class="uk-card uk-card-default uk-card-body">Элемент 1</div> <div class="uk-card uk-card-default uk-card-body uk-margin-left">Элемент 2</div> <div class="uk-card uk-card-default uk-card-body uk-margin-left">Элемент 3</div> </div>
Вертикальное выравнивание
Эти классы определяют вертикальное выравнивание элементов. По умолчанию flex-элементы заполняют высоту своего контейнера так же, как и класс .uk-flex-stretch
.
Класс | Описание |
---|---|
.uk-flex-stretch |
Добавьте этот класс для расширения flex элементов, чтобы заполнить высоту их родительского элемента. |
.uk-flex-top |
Добавьте этот класс для выравнивания элементов по верхнему краю. |
.uk-flex-middle |
Добавьте этот класс для центрирования элементов вдоль поперечной оси |
.uk-flex-bottom |
Добавьте этот класс для выравнивания элементов по нижнему краю. |
<div class="uk-flex uk-flex-middle"></div>
- Элемент 1Элемент 2
...Элемент 3
...
... <div class="uk-flex uk-flex-middle uk-text-center"> <div class="uk-card uk-card-default uk-card-body">Элемент 1</div> <div class="uk-card uk-card-default uk-card-body uk-margin-left">Элемент 2<br>...</div> <div class="uk-card uk-card-default uk-card-body uk-margin-left">Элемент 3<br>...<br>...</div> </div>
Модификаторы направления
Эти классы определяют ось, на которой располагаются элементы, а также их направление. По умолчанию элементы работают горизонтально слева направо, как и класс .uk-flex-row
.
Класс | Описание |
---|---|
.uk-flex-row |
Добавьте этот класс, чтобы расположить элементы по горизонтали, слева направо. |
.uk-flex-row-reverse |
Добавьте этот класс, чтобы расположить элементы по горизонтали, справа налево. |
.uk-flex-column |
Добавьте этот класс, чтобы расположить элементы в виде вертикальных столбцов. |
.uk-flex-column-reverse |
Добавьте этот класс, чтобы расположить элементы в виде вертикальных столбцов в обратном порядке. |
<div class="uk-flex uk-flex-column"></div>
- Элемент 1Элемент 2Элемент 3
<div class="uk-flex uk-flex-column uk-width-1-3"> <div class="uk-card uk-card-default uk-card-body">Элемент 1</div> <div class="uk-card uk-card-default uk-card-body uk-margin-top">Элемент 2</div> <div class="uk-card uk-card-default uk-card-body uk-margin-top">Элемент 3</div> </div>
Модификатор обтекания
По умолчанию гибкие элементы помещаются в одну строку и располагаются слева направо, как текст. Добавьте один из этих классов, чтобы изменить обтекание элементов.
Класс | Описание |
---|---|
.uk-flex-wrap |
Добавьте этот класс, чтобы разрешить элементам переноситься на другую строку, когда они больше не помещаются в свой контейнер. |
.uk-flex-wrap-reverse |
Добавьте этот класс, чтобы изменить направление элементов так, чтобы они отображались справа налево. |
.uk-flex-nowrap |
Добавьте этот класс, чтобы отобразить элементы flex в одну строку. Это поведение по умолчанию. |
Следующие классы модифицируют выравнивание элементов flex.
Класс | Описание |
---|---|
.uk-flex-wrap-stretch |
Добавьте этот класс, чтобы линии элементов растягивались, чтобы занять оставшееся пространство |
.uk-flex-wrap-between |
Добавьте этот класс для равномерного распределения строк элементов, с первой строкой вверху и последней строкой внизу контейнера. |
.uk-flex-wrap-around |
Добавьте этот класс, чтобы равномерно распределить линии с равным пространством сверху и снизу каждой строки. |
.uk-flex-wrap-top |
Добавьте этот класс для выравнивания многострочных элементов по верхнему краю. |
.uk-flex-wrap-middle |
Добавьте этот класс для вертикального центрирования многорядных элементов. |
.uk-flex-wrap-bottom |
Добавьте этот класс, чтобы выровнять многострочные элементы по нижнему краю. |
<div class="uk-flex uk-flex-wrap uk-flex-wrap-around"></div>
- Элемент 1Элемент 2Элемент 3Элемент 4Элемент 5Элемент 6
<div class="uk-flex uk-flex-wrap uk-flex-wrap-around uk-background-muted uk-height-medium"> <div class="uk-width-1-3 uk-card uk-card-default uk-card-body uk-card-small">Элемент 1</div> <div class="uk-width-1-2 uk-card uk-card-default uk-card-body uk-card-small uk-margin-left">Элемент 2</div> <div class="uk-width-1-3 uk-card uk-card-default uk-card-body uk-card-small">Элемент 3</div> <div class="uk-width-1-3 uk-card uk-card-default uk-card-body uk-card-small uk-margin-left">Элемент 4</div> <div class="uk-width-1-2 uk-card uk-card-default uk-card-body uk-card-small">Элемент 5</div> <div class="uk-width-1-3 uk-card uk-card-default uk-card-body uk-card-small uk-margin-left">Элемент 6</div> </div>
Порядок элементов
По умолчанию элементы располагаются в соответствии с порядком слева-направо. Для изменения порядка элементов добавьте один из этих классов.
Класс | Описание |
---|---|
.uk-flex-first |
Ставит элемент первым в списке |
.uk-flex-last |
Ставит элемент последним в списке |
.uk-flex-first@s .uk-flex-last@s |
Работает на устройствах с экраном 640px и больше. |
.uk-flex-first@m .uk-flex-last@m |
Работает на устройствах с экраном 960px и больше. |
.uk-flex-first@l .uk-flex-last@l |
Работает на устройствах с экраном 1200px и больше. |
.uk-flex-first@xl .uk-flex-last@xl |
Работает на устройствах с экраном 1600px и больше. |
<div class="uk-flex">
<div></div>
<div class="uk-flex-first"></div>
</div>
- Элемент 1Элемент 2Элемент 3
<div class="uk-flex"> <div class="uk-card uk-card-default uk-card-body uk-flex-last uk-margin-left">Элемент 1</div> <div class="uk-card uk-card-default uk-card-body uk-flex-first">Элемент 2</div> <div class="uk-card uk-card-default uk-card-body uk-margin-left">Элемент 3</div> </div>
Жадность элементов
Чтобы определить, сколько места должен занимать элемент, добавьте к нему один из следующих классов. По умолчанию элементы растягиваются по содержимому, но могут и уменьшаться.
Класс | Описание |
---|---|
.uk-flex-none |
Элемент растягивается его содержимым. |
.uk-flex-auto |
Пространство определяется с учетом содержимого элемента. |
.uk-flex-1 |
Пространство определяется исключительно на основе flex. |
Компонент Flex в сетке
Компонент Flex комбинируется с сеткой из компонента Grid.
Все человеческое умение не что иное, как смесь терпения и времени.
<div class="uk-flex-middle" uk-grid> <div class="uk-width-2-3@m"> <p>Все человеческое умение не что иное, как смесь терпения и времени.</p> </div> <div class="uk-width-1-3@m uk-flex-first"> <img src="images/light.jpg" alt="Image"> </div> </div>