Гибкость и мощь Flexbox
@truefrontenderЧто такое флексбокс?
Flexbox - это модуль макета в CSS, представляющий собой одномерную модель. Он предоставляет простой способ выравнивания, распределения пространства между элементами в контейнере, даже когда их размер неизвестен или динамичен. Главная особенность Flexbox заключается в том, что он позволяет работать только со строкой или столбцом одновременно, но не с обоими сразу. Две ключевые концепции Flexbox - это главная ось и поперечная ось. Главная ось flex-контейнера определяет основное направление расположения элементов, в то время как поперечная ось перпендикулярна ей.
Основные концепции Flexbox:
- Flex Container (Флекс-контейнер): Создается применением
display: flex|inline-flex;к элементу. Все его дочерние элементы становятся флекс-элементами. - Flex Items (Флекс-элементы): Непосредственные потомки флекс-контейнера.
- Main Axis и Cross Axis (Основная и Поперечная Оси): Определяют направление расположения флекс-элементов.
Ключевые свойства:
-
display: Устанавливает элемент как flex контейнер. Принимает значенияflexилиinline-flex.

flex-direction: Определяет направление расположения flex элементов в контейнере. Может бытьrow,row-reverse,column,column-reverse.

justify-content: Выравнивает элементы вдоль основной оси контейнера. Включает значенияflex-start,flex-end,center,space-between,space-around,space-evenly.align-content: Выравнивает строки внутри контейнера при наличии дополнительного пространства по поперечной оси. Принимает те же значения, что иjustify-content.

align-items: Выравнивает элементы вдоль поперечной оси. Включаетflex-start,flex-end,center,baseline,stretch.

flex-wrap: Управляет переносом элементов. Возможные значения:nowrap,wrap,wrap-reverse.

flex-grow: Определяет способность элемента расти, чтобы заполнить доступное пространство.

flex-shrink: Определяет способность элемента сжиматься при нехватке пространства.

flex-basis: Устанавливает начальный размер элемента до распределения свободного пространства.

flex: Сокращение дляflex-grow,flex-shrinkиflex-basis.

order: Управляет порядком элементов внутри контейнера.

Полезные фишки:
- Проще всего центрировать элементы, установив
justify-contentиalign-itemsнаcenterво флекс-контейнере. - Используйте
flex-growдля контроля того, как элементы будут расти и заполнять доступное пространство. Значениеflex-grow: 1у нескольких элементов заставит их разделить пространство поровну. - Создание колонного макета становится проще с
flex-direction: column. Это идеально подходит для мобильных макетов. - Используйте
flex-direction: row-reverseилиcolumn-reverse, чтобы поменять порядок элементов. - Свойство
flex-wrapпозволяет управлять переносом элементов на новую строку, что особенно полезно при создании адаптивных макетов.
Полезные ссылки
CSS Flexbox Playground - Учебный инструмент, позволяющий узнать, как строить макеты Flexbox. Вы можете редактировать свойства контейнера flex и элементов, а затем просматривать результаты
Пост в канале @TrueFrontender - Список игр для обучения
Заключение
Флексбокс - это мощный инструмент, который позволяет разработчикам с меньшими усилиями создавать сложные, адаптивные и красивые интерфейсы. Его гибкость и функциональность делают его незаменимым в арсенале современного разработчика.
Больше интересного в канале True Frontender