← Все вопросы

Что такое justify-content и align-items в flexbox? Никак не уложу в голове, какое за что

Задан 16 месяцев назад822 просмотров2 ответа
6

Делаю flex-контейнер, есть justify-content и align-items, оба про расположение. Постоянно путаю, какое двигает влево-вправо, а какое вверх-вниз. Можно по-простому?

2 ответа

10
✓ Принятый ответ — помог автору

В обычном flex-контейнере (без flex-direction) элементы выстраиваются в ряд слева направо. Тогда:

  • justify-content — двигает элементы вдоль ряда (по горизонтали): flex-start (слева), center (по центру), flex-end (справа), space-between (раздвинуть по краям с равными промежутками).
  • align-items — двигает поперёк ряда (по вертикали): flex-start (вверх), center, flex-end (вниз).
.row {
  display: flex;
  justify-content: space-between;  /* раскидать по ширине */
  align-items: center;            /* выровнять по вертикали */
}

Запоминалка: justify — вдоль строки (как текст выравниваешь), align — поперёк (поднять/опустить). space-between особенно полезен для меню: пункты разъезжаются к краям.

4

Если элементы переносятся на новую строку, добавь flex-wrap: wrap, иначе они будут ужиматься в один ряд. А gap: 10px задаёт расстояние между ними — намного удобнее, чем margin'ы у каждого.

Ваш ответ

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