foundation
Flexbox
Используйте одномерный layout, оси, перенос, flex-basis, рост, сжатие, выравнивание и gap.
Flexbox распределяет элементы вдоль одной main axis и выравнивает по cross axis. Задайте `display: flex`, направление через `flex-direction`, размеры — shorthand `flex` (grow, shrink, basis).
.toolbar {
display: flex;
gap: 0.75rem;
align-items: center;
}
.toolbar__grow {
flex: 1 1 auto;
min-width: 0; /* сжатие ниже ширины контента */
}
`justify-content` — по main axis; `align-items` — по cross axis. `flex-wrap` даёт многострочные ряды. По умолчанию `min-width: auto` не даёт сжаться ниже контента — классическая ловушка на интервью с длинным текстом.
На интервью: оси, shorthand flex, почему элементы не сжимаются и когда лучше Grid.
Типовые ошибки: Flexbox для двумерных tracks; нет min-width: 0 у текстовых flex children.
Компромисс: простота на одной оси против попыток имитировать Grid вложенными flex-рядами.
Чеклист:
- Явно выберите main axis.
- Настройте basis и grow/shrink осознанно.
- gap вместо margin-хаков.
- min-width: 0, когда контент должен сжиматься.