CSS Flexbox: одномерные раскладки
Коротко: Flexbox располагает элементы в строку или столбец, распределяет свободное место и выравнивает их. Это стандартный инструмент для меню, рядов карточек и центрированного содержимого.
Подробнее: Контейнер превращают во «flex-блок» через display: flex. Его прямые потомки становятся flex-элементами и подчиняются правилам контейнера.
Подробности
- Главная ось:
flex-direction: row(по умолчанию) илиcolumn. Поперечная ось перпендикулярна ей. - Выравнивание:
justify-contentраспределяет вдоль главной оси (flex-start,center,space-between,space-around).align-itemsвыравнивает поперёк (stretch,center,flex-start). - Промежутки:
gap: 1remзадаёт интервалы без хитростей с полями. - Перенос:
flex-wrap: wrapпозволяет элементам переноситься на следующую строку. - Рост и сжатие:
flex: 1заставляет элемент занять свободное место,flex: 0 0 200pxзадаёт фиксированную ширину. Полностью:flex-grow,flex-shrink,flex-basis. - Центрирование:
display:flex; justify-content:center; align-items:center;центрирует потомка по горизонтали и вертикали. - Когда Grid? Для двумерных сеток (строки и столбцы одновременно) лучше CSS Grid. Flexbox рассчитан на одно направление.
См. также: CSS, медиазапросы