← Все вопросы

Что такое flexbox простыми словами и зачем justify-content / align-items?

Задан 5 месяцев назад1.1к просмотров3 ответа
19

Все говорят «используй флексбокс», а я не понимаю, что это вообще. Можно на пальцах: что делает display: flex и эти два свойства justify-content и align-items?

3 ответа

41

Flexbox — это способ раскладывать дочерние элементы внутри контейнера по одной оси (в ряд или в колонку), удобно управляя выравниванием и распределением свободного места.

Ставишь контейнеру display: flex — и его прямые дети становятся «флекс-элементами», по умолчанию выстраиваются в ряд слева направо. Дальше две главные ручки:

.box {
  display: flex;
  justify-content: center;   /* выравнивание ВДОЛЬ главной оси (по умолч. горизонталь) */
  align-items: center;       /* выравнивание ПОПЕРЁК главной оси (вертикаль) */
}
  • justify-content — раскидывает по главной оси: center, flex-start, flex-end, space-between, space-around.
  • align-items — прижимает поперёк: center, flex-start, flex-end, stretch.

Если поставить flex-direction: column, оси меняются местами, и тогда justify-content рулит уже по вертикали. Это главное, что путает новичков.

Михаил Боженко сохранил себе 👍 · 5 месяцев назад
alex zali про смену осей при column — прям откровение, спасибо · 4 месяца назад
14

justify-content = вдоль линии, align-items = поперёк линии. Запомнить так проще всего.

7

Раскладка блоков в ряд/столбик.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект