PassFront
  1. PassFront
  2. База знаний
  3. Flexbox

Что означает flex: 1 и как работают flex-grow, flex-shrink и flex-basis?

Flexbox

`flex` — сокращение из трёх свойств, которые определяют, как элемент занимает место на главной оси.

Свойства

  • `flex-basis` — начальный размер до распределения места (по умолчанию auto).
  • `flex-grow` — какую долю свободного места получает элемент (0 — не растёт).
  • `flex-shrink` — насколько элемент уменьшается, когда места не хватает (1 — уменьшается, 0 — нет).

Сокращения

.item { flex: 1; }        /* 1 1 0%: растёт и сжимается, базовый размер 0 */
.item { flex: auto; }     /* 1 1 auto: базовый размер по содержимому */
.item { flex: none; }     /* 0 0 auto: фиксированный */
.item { flex: 0 0 200px; }/* ровно 200 px, не меняется */

Пример

.row { display: flex; gap: 16px; }
.sidebar { flex: 0 0 240px; }  /* фиксированная колонка */
.content { flex: 1; }          /* остаток */

flex: 1 делит свободное место поровну, потому что базовый размер у всех равен нулю.

Коротко для собеседования

flex: 1 — это «расти, сжиматься, базовый размер ноль». Для фиксированных блоков используют 0 0 размер.

Другие вопросы раздела