Уроки + 20 уровней

Расставляйте коробки с помощью Flexbox

Пишете в контейнере display: flex, justify-content и align-items и ставите коробки на место. То, что вы написали, сразу видно вживую.

Начать
Вживую20 уровнейС анимацией
ЖИВОЕ ДЕМО

Задача: Соберите коробки по центру

123
justify-content: flex-start;
Верно! Вот так.

Посмотрите каждое свойство Flexbox вживую на примере коробок: какие значения принимает свойство и что при этом меняется. Затем переходите к «Практике».

1
2
3
display: flex
display: flex

Всё начинается отсюда

Если задать контейнеру display: flex, коробки (flex-элементы) выстроятся в один ряд бок о бок. В обычном состоянии они стояли друг под другом.

.maydon {
  display: flex;
}
1
2
3
главная ось (main) →cross
ось main / cross

Разберитесь в двух осях

Flexbox работает с двумя осями: главная ось (main), то есть направление, вдоль которого выстраиваются коробки (обычно горизонтальное), и поперечная ось (cross), перпендикулярная ей. justify-content размещает вдоль главной оси, align-items — вдоль поперечной.

/* главная ось ->  justify-content */
/* поперечная ось v  align-items */
1
2
3
justify-content

Вдоль главной оси

justify-content размещает коробки вдоль главной оси (горизонтальной): flex-start (влево), center (по центру), flex-end (вправо), space-between / space-around / space-evenly (промежутки между ними).

justify-content: center;
justify-content: space-between;
1
2
3
align-items

Вдоль поперечной оси

align-items размещает коробки вдоль поперечной оси (вертикальной): flex-start (вверх), center (по центру), flex-end (вниз), stretch (растягивает на всю высоту).

align-items: center;
align-items: flex-end;
1
2
3
flex-direction

Смена направления

flex-direction задаёт направление главной оси: row (строка, по умолчанию), column (столбец) и их обратные варианты с -reverse. Важно: при column главная ось становится вертикальной!

flex-direction: column;
flex-direction: row-reverse;
1
2
3
gap

Промежуток между ними

gap ставит равный промежуток между коробками. Возиться с margin не придётся, хватит одной строки.

gap: 16px;
1
2
3
4
5
6
flex-wrap

Не помещается — на следующую строку

По умолчанию коробки сжимаются в одну строку. Если задать flex-wrap: wrap, то, что не помещается, переходит на следующую строку. Так строится адаптивная (responsive) сетка.

flex-wrap: wrap;
1
2
3
flex-grow

Занять свободное место

flex-grow — свойство коробки (элемента). Если значение 1, она расширяется, занимая свободное место. Остальные сохраняют свой размер.

.quti2 {
  flex-grow: 1;
}
1
2
3
order

Изменение порядка

order — свойство коробки. Оно управляет порядком отображения, не меняя HTML. Меньшее значение стоит впереди, большее — позади (по умолчанию 0).

.quti1 {
  order: 2;
}
1
2
3
align-self

Исключение для одной коробки

align-self — свойство коробки. Оно отменяет правило align-items контейнера только для этой коробки. Пригодится, если одну нужно разместить иначе.

.quti2 {
  align-self: flex-end;
}

Готовы? 🎯

Теперь проверьте знания: в практике из 20 уровней вы пишете код и ставите коробки по своим домикам.

Поле display: flex

Отлично!

Коробки встали на место.

1Коробка (flex-элемент) Домик (для своей коробки)
Задача
.maydon CSSВживую
Пояснение
Нужна помощь?