CSS Flexbox: Руководство для начинающих

CSS
CSS Flexbox — это мощный инструмент для создания гибких и адаптивных макетов. Flexbox позволяет легко управлять расположением элементов, их выравниванием и распределением свободного пространства.

В этой статье мы познакомимся с основами Flexbox и научимся решать типичные задачи с его помощью.

Часть 1: Основы Flexbox



Что такое Flexbox?
Flexbox — это модуль CSS, разработанный для облегчения создания гибких и адаптивных макетов. Он основан на концепции гибких контейнеров и элементов, которые могут динамически перераспределять пространство между собой.

Основные понятия Flexbox:
  • Flex Container: родительский элемент, который управляет расположением дочерних элементов.
  • Flex Items: дочерние элементы, которые располагаются внутри контейнера.

Как создать Flexbox?
Чтобы превратить элемент в Flexbox-контейнер, нужно добавить свойство:
.container {
    display: flex;
}

Теперь все дочерние элементы контейнера станут flex-элементами.

Часть 2: Основные свойства Flexbox



1. Направление и ось
  • flex-direction: задает направление, вдоль которого располагаются элементы.

Возможные значения:
  • row (по умолчанию): элементы располагаются горизонтально слева направо.
  • column: элементы располагаются вертикально сверху вниз.
  • row-reverse: элементы располагаются горизонтально справа налево.
  • column-reverse: элементы располагаются вертикально снизу вверх.

Пример:
.container {
    display: flex;
    flex-direction: row; /* горизонтальное расположение */
}

2. Выравнивание элементов
  • justify-content: контролирует выравнивание элементов вдоль главной оси (в направлении, заданном flex-direction).

Возможные значения:
  • flex-start (по умолчанию): элементы выравниваются в начале контейнера.
  • center: элементы выравниваются по центру.
  • flex-end: элементы выравниваются в конце контейнера.
  • space-between: равномерное распределение пространства между элементами.
  • space-around: равномерное распределение пространства вокруг элементов.
  • space-evenly: равномерное распределение пространства между всеми элементами и краями контейнера.

Пример:
.container {
    display: flex;
    justify-content: center; /* выравнивание по центру */
}

  • align-items: контролирует выравнивание элементов перпендикулярно главной оси.

Возможные значения:
  • stretch (по умолчанию): элементы растягиваются, чтобы заполнить контейнер.
  • flex-start: элементы выравниваются в начале контейнера.
  • center: элементы выравниваются по центру.
  • flex-end: элементы выравниваются в конце контейнера.
  • baseline: элементы выравниваются по базовой линии текста.

Пример:
.container {
    display: flex;
    align-items: center; /* вертикальное выравнивание по центру */
}

Часть 3: Практические примеры



Пример 1: Карточки товаров
Создадим карточку товара с помощью Flexbox:
<div class="card">
    <img alt="Product" id="019afb8e-9355-772b-96af-fda0e27a9dcd">
    <div class="info">
        <h2>Название продукта</h2>
        <p>Описание продукта</p>
        <span>$19.99</span>
    </div>
</div>

.card {
    display: flex;
    align-items: center;
    border: 1px solid #ddd;
    padding: 10px;
}

.info {
    margin-left: 10px;
}

Пример 2: Навигационное меню
Создадим горизонтальное меню с выравниванием по центру:
<ul class="menu">
    <li>Home</li>
    <li>About</li>
    <li>Services</li>
    <li>Contact</li>
</ul>

.menu {
    display: flex;
    justify-content: center;
    list-style: none;
    padding: 0;
}

.menu li {
    margin: 0 10px;
}

Заключение


Flexbox — это мощный инструмент, который упрощает создание сложных макетов и обеспечивает отличную поддержку адаптивности. Освоив основные свойства Flexbox, вы сможете создавать удобные и элегантные дизайны, которые легко адаптируются под разные устройства и разрешения экранов.
Автор:  08.12.2025 07:40:50 am