Flexbox - это модель раскладки элементов в CSS, которая позволяет эффективно управлять расположением элементов в контейнере и устранять проблемы с выравниванием и отображением на разных устройствах. Flexbox основан на идеи гибкого контейнера, который может изменять размер, распределение и порядок элементов внутри него.
Для создания flexbox-контейнера нужно задать свойство display
со значением flex
для родительского элемента. Например:
.container {
display: flex;
}
После этого, все дочерние элементы контейнера становятся гибкими элементами, которые можно управлять с помощью дополнительных свойств.
Оси flexbox:
Flexbox работает с двумя осями: осью главного направления (main axis) и осью поперечного направления (cross axis).
- Ось главного направления (main axis) - это ось, вдоль которой располагаются гибкие элементы. Она может быть задана с помощью свойства
flex-direction
. Возможные значения:row
,row-reverse
,column
,column-reverse
. - Ось поперечного направления (cross axis) - это ось, перпендикулярная оси главного направления. Она используется для управления расположением гибких элементов вдоль оси главного направления.
Для управления расположением гибких элементов на оси главного направления и поперечной оси, можно использовать следующие свойства:
justify-content
- выравнивание элементов вдоль оси главного направления. Возможные значения:flex-start
,flex-end
,center
,space-between
,space-around
,space-evenly
.align-items
- выравнивание элементов вдоль оси поперечного направления. Возможные значения:flex-start
,flex-end
,center
,baseline
,stretch
.align-self
- управление выравниванием отдельных элементов вдоль оси поперечного направления. Возможные значения:flex-start
,flex-end
,center
,baseline
,stretch
.flex-direction
- задает направление оси главного направления. Возможные значения:row
,row-reverse
,column
,column-reverse
.flex-wrap
- управляет переносом элементов, когда они не помещаются в контейнер. Возможные значения:nowrap
,wrap
,wrap-reverse
.flex-flow
- сокращенный вариант для задания свойствflex-direction
иflex-wrap
.order
- определяет порядок элементов внутри контейнера. Значение по умолчанию - 0, можно использовать отрицательные значения.
Использование flexbox позволяет создавать адаптивный макет, который будет корректно отображаться на разных устройствах, и упрощает управление расположением элементов на странице.