justify-content
Властивість CSS justify-content
(вирівняти вміст) визначає те, як браузер розподіляє простір між та навколо елементами вмісту за головною віссю flex-контейнера, а також рядковою віссю сіткового контейнера.
Інтерактивний приклад нижче показує деякі значення за допомогою сіткової розкладки.
Спробуйте його в дії
Шикування виконується після того, як застосовані довжини та автоматичні зовнішні поля, тобто якщо при гнучкій розкладці
є принаймні один гнучкий елемент, в котрого значення властивості flex-grow
відмінне від 0
— воно не діятиме, оскільки не буде жодного вільного простору.
Синтаксис
/* Позиційне шикування */
justify-content: center; /* Скласти елементи навколо центру */
justify-content: start; /* Скласти елементи біля початку */
justify-content: end; /* Скласти елементи біля кінця */
justify-content: flex-start; /* Скласти гнучкі елементи біля початку */
justify-content: flex-end; /* Скласти гнучкі елементи біля кінця */
justify-content: left; /* Скласти елементи зліва */
justify-content: right; /* Скласти елементи зправа */
/* Шикування за базовою лінією */
/* justify-content не приймає значень за базовою лінією*/
/* Звичайне шикування */
justify-content: normal;
/* Розподілене шикування */
justify-content: space-between; /* Розподілити елементи рівномірно
Перший елемент прямо на початку,
а останній – прямо в кінці */
justify-content: space-around; /* Розподілити елементи рівномірно
Пропуски на початку та в кінці
завширшки як половина
простору між елементами */
justify-content: space-evenly; /* Розподілити елементи рівномірно
Проміжки на початку, між елементами
та в кінці мають однаковий розмір */
justify-content: stretch; /* Розподілити елементи рівномірно
Розтягнути елементи з розміром 'auto'
для заповнення контейнера */
/* Шикування переповнення */
justify-content: safe center;
justify-content: unsafe center;
/* Глобальні значення */
justify-content: inherit;
justify-content: initial;
justify-content: revert;
justify-content: revert-layer;
justify-content: unset;
Значення
start
Елементи складені один за одним з початкового краю контейнера шикування на основній осі.
end
Елементи складені один за одним з кінцевого краю контейнера шикування на основній осі.
flex-start
Елементи складені один за одним на краю контейнера шикування, залежно від боку початку гнучкого контейнера. Це застосовується лише до елементів гнучкої розкладки. Для елементів, що не є дочірніми для гнучкого контейнера, це значення є еквівалентним до
start
.flex-end
Елементи складені один за одним на краю контейнера шикування, залежно від боку кінця гнучкого контейнера. Це застосовується лише до елементів гнучкої розкладки. Для елементів, що не є дочірніми для гнучкого контейнера, це значення є еквівалентним до
end
.center
Елементи складені один за одним біля центру контейнера шикування на основній осі.
left
Елементи складені один за одним з лівого краю контейнера шикування. Коли горизонтальна вісь властивості не паралельна до рядкової осі, наприклад, коли задано
flex-direction: column;
, то це значення еквівалентне доstart
.right
Елементи складені один за одним з правого краю контейнера шикування на відповідній осі. Якщо вісь властивості не паралельна до рядкової осі (в сітковому контейнері) або рядковій осі (у флексбокс-контейнері), то це значення еквівалентне до
start
.normal
Поводиться як
stretch
, окрім випадків багатоколонкових контейнерів зcolumn-width
зі значенням, відмінним відauto
, – тоді колонки займають задану для них ширинуcolumn-width
, а не розтягуються для заповнення контейнера. Оскількиstretch
поводиться у гнучких контейнерах якstart
, тоnormal
тоді також поводиться якstart
.space-between
Елементи рівномірно розподілені в межах контейнера шикування вздовж головної осі. Проміжки між кожними двома сусідніми елементами – однакові. Перший елемент знаходиться прямо на початковому краю, а останній – прямо на кінцевому краю.
space-around
Елементи рівномірно розподілені в межах контейнера шикування вздовж головної осі. Проміжки між кожними двома сусідніми елементами – однакові. Незайнятий простір перед першим та після останнього елемента дорівнює половині простору між кожними двома сусідніми елементами.
space-evenly
Елементи рівномірно розподілені в межах контейнера шикування вздовж головної осі Простір між кожними двома елементами, а також між початковим краєм та першим елементом, як і між кінцевим краєм та останнім елементом, цілковито однаковий.
stretch
Якщо сума довжин елементів за головною віссю менша за довжину контейнера шикування, то будь-які елементи з автоматичною довжиною кожен отримують рівне (без дотримання пропорцій) збільшення довжини, втім, із дотриманням обмежень, накладених
max-height
таmax-width
(або еквівалентною функціональністю), тож сума довжин якраз заповнює контейнер шикування вздовж головної осі.Примітка: Що до флексбоксів, то значення
stretch
поводиться якflex-start
абоstart
. Це пов'язано з тим, що у флексбоксах розтягування контролюється за допомогою властивостіflex-grow
.safe
Якщо елемент переповнює контейнер шикування, то елемент шикується так, ніби режим шикування –
start
. Бажане шикування не буде реалізовано.unsafe
Навіть якщо елемент переповнює контейнер шикування, бажане шикування все-таки реалізовується. На відміну від значення
safe
, котре ігнорує бажане шикування на користь запобігання переповненню.
Формальне визначення
Початкове значення | normal |
---|---|
Успадковується | ні |
Обчислене значення | as specified |
Формальний синтаксис
normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]де
<content-distribution> = space-between | space-around | space-evenly | stretch
<overflow-position> = unsafe | safe
<content-position> = center | start | end | flex-start | flex-end
Приклади
Встановлення розподілу гнучких елементів
CSS
#container {
display: flex;
justify-content: space-between; /* Може бути змінене у живому зразку */
}
#container > div {
width: 100px;
height: 100px;
background: linear-gradient(-45deg, #788cff, #b4c8ff);
}
Результат
Специфікації
Сумісність із браузерами
desktop | mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Supported in Flex Layout | Chrome Full support 52 | Edge Full support 12 | Firefox Full support 20 | Internet Explorer Full support 11 | Opera Full support 12.1 | Safari Full support 9 | WebView Android Full support 52 | Chrome Android Full support 52 | Firefox for Android Full support 20 | Opera Android Full support 12.1 | Safari on iOS Full support 9 | Samsung Internet Full support 6.0 |
left and right
|
Chrome Full support 93 | Edge Full support 93 | Firefox Full support 52 | Internet Explorer No support No | Opera Full support 79 | Safari Full support 9 | WebView Android Full support 93 | Chrome Android Full support 93 | Firefox for Android Full support 52 | Opera Android No support No | Safari on iOS Full support 9 | Samsung Internet Full support 17.0 |
safe and unsafe
|
Chrome No support No | Edge No support No | Firefox Full support 63 | Internet Explorer No support No | Opera No support No | Safari No support No | WebView Android No support No | Chrome Android No support No | Firefox for Android Full support 63 | Opera Android No support No | Safari on iOS No support No | Samsung Internet No support No |
space-evenly
|
Chrome Full support 60 | Edge Full support 79 | Firefox Full support 52 | Internet Explorer No support No | Opera Full support 47 | Safari Full support 11 | WebView Android Full support 60 | Chrome Android Full support 60 | Firefox for Android Full support 52 | Opera Android Full support 44 | Safari on iOS Full support 11 | Samsung Internet Full support 8.0 |
start and end
|
Chrome Full support 93 | Edge Full support 93 | Firefox Full support 45 | Internet Explorer No support No | Opera Full support 79 | Safari No support No | WebView Android Full support 93 | Chrome Android Full support 93 | Firefox for Android Full support 45 | Opera Android No support No | Safari on iOS No support No | Samsung Internet Full support 17.0 |
stretch
|
Chrome Full support 57 | Edge Full support 79 | Firefox Full support 52 | Internet Explorer No support No | Opera Full support 44 | Safari Full support 9 | WebView Android Full support 57 | Chrome Android Full support 57 | Firefox for Android Full support 52 | Opera Android Full support 43 | Safari on iOS Full support 9 | Samsung Internet Full support 7.0 |
Supported in Grid Layout | Chrome Full support 57 | Edge Full support 16 | Firefox Full support 52 | Internet Explorer No support No | Opera Full support 44 | Safari Full support 10.1 | WebView Android Full support 57 | Chrome Android Full support 52 | Firefox for Android Full support 52 | Opera Android Full support 43 | Safari on iOS Full support 10.3 | Samsung Internet Full support 6.2 |
Дивіться також
- Настанови із гнучких блоків CSS: Основні концепції гнучкого блока
- Настанови із гнучких блоків CSS: Шикування елементів у гнучкому контейнері
- Настанови із сітки CSS: Блокове шикування при сітковій розкладці CSS
- Блокове шикування CSS