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

CSS Flexbox (Гибкая блочная модель)

Название Flexbox — это сокращённая форма модуля CSS Flexible Box Layout.

Это модель компоновки, которая располагает элементы внутри контейнера по горизонтали или по вертикали гибким и адаптивным способом.

Вы получаете гибкие и адаптивные макеты без особых усилий, и при этом не нужны ни float, ни позиционирование.

Flexbox против Grid: Разница в измерениях. Flexbox работает с одним за раз (строки ИЛИ столбцы), а CSS Grid работает с двумя (строки И столбцы).

Пример

Пять flex-элементов расположены в ряд внутри одного flex-контейнера.

Prompt
Создайте flex-контейнер с синим (DodgerBlue) фоном, содержащий пять flex-элементов с подписями «Элемент 1» — «Элемент 5». У каждого элемента должен быть светло-серый (#f1f1f1) фон, отступ (margin) 10px, внутренний отступ (padding) 20px и размер шрифта 30px.
Результат: полная HTML-страница

Компоненты CSS Flexbox

Любой flexbox состоит из двух частей:

  • Flex-контейнер — родительский элемент, у которого свойство display имеет значение flex или inline-flex.
  • Один или несколько Flex-элементов — любой прямой дочерний элемент контейнера автоматически становится таким элементом.

Flex-контейнер с тремя Flex-элементами

В примере ниже синяя область — это flex-контейнер, и в нём находятся три flex-элемента.

В следующих главах контейнеры и элементы рассматриваются подробнее.

Пример

Три flex-элемента внутри одного flex-контейнера.

Prompt
Создайте flex-контейнер с фоном DodgerBlue, содержащий три flex-элемента с подписями «Элемент 1», «Элемент 2» и «Элемент 3». У каждого элемента должен быть светло-серый (#f1f1f1) фон, отступ (margin) 10px, внутренний отступ (padding) 20px и размер шрифта 30px.
Результат: полная HTML-страница