justify-content: выравнивание по главной оси
justify-contentвыравнивает flex-элементы вдоль главной оси контейнера и управляет распределением свободного пространства между ними.
Зачем нужно
justify-content — основной инструмент для горизонтального (при flex-direction: row) расположения групп элементов: выровнять по центру, прижать к краям, равномерно распределить. Один из самых частых паттернов: навбар с лого слева и кнопками справа через space-between.
Где используется
- Навбар: лого и кнопки по краям (
space-between) - Центрирование кнопок в блоке (
center) - Равномерное распределение пунктов меню
- Прижатие группы кнопок вправо (
flex-end)
Значения
.container {
display: flex;
justify-content: flex-start; /* начало главной оси (по умолчанию) */
justify-content: flex-end; /* конец главной оси */
justify-content: center; /* по центру */
justify-content: space-between; /* первый и последний у краёв, остальные равномерно */
justify-content: space-around; /* равные отступы вокруг каждого элемента */
justify-content: space-evenly; /* равные отступы между всеми элементами и краями */
}
Примеры
flex-start и flex-end
.toolbar {
display: flex;
justify-content: flex-end; /* кнопки прижаты вправо */
gap: 8px;
}
center — центрирование
.hero-buttons {
display: flex;
justify-content: center;
gap: 16px;
}
<div class="hero-buttons">
<button>Начать</button>
<button>Узнать больше</button>
</div>
space-between — навбар
.navbar {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 24px;
}
<nav class="navbar">
<a class="logo" href="/">Логотип</a>
<div class="nav-links">
<a href="/about">О нас</a>
<a href="/contact">Контакты</a>
</div>
</nav>
Сравнение space-*
space-between: |A B C| — крайние у краёв
space-around: | A B C | — равные отступы вокруг
space-evenly: | A B C | — все промежутки одинаковы
justify-content при flex-direction: column
.sidebar {
display: flex;
flex-direction: column;
height: 100vh;
justify-content: space-between; /* ссылки вверху, футер внизу */
}
Важно: работает только при наличии свободного пространства
Если элементы заняли весь контейнер (flex-grow: 1 у всех), justify-content не имеет эффекта — свободного пространства нет.
Частые ошибки
justify-contentбезdisplay: flex— не работает- Путаница при
flex-direction: column— тогдаjustify-contentвыравнивает по вертикали, аalign-itemsпо горизонтали space-betweenс одним элементом — ничего не происходит, один элемент прижимается к началу
Связанные темы
- align-items -- выравнивание по поперечной оси
- justify-content -- выравнивание по главной оси
- justify-content -- выравнивание по главной оси
- align-content -- многострочное выравнивание
- _MOC Flexbox