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

Елементи складені один за одним з лівого краю контейнера шикування. Якщо вісь властивості не паралельна до рядкової осі, це значення еквівалентне до start.

Елементи складені один за одним з правого краю контейнера шикування на відповідній осі. Якщо вісь властивості не паралельна до рядкової осі, це значення еквівалентне до start.

normal

Елементи складені на своїх усталених місцях так, ніби властивість justify-content не вказана. Це значення еквівалентне до stretch у сіткових та гнучких контейнерах.

baseline first baseline last baseline

Задає шикування елемента відносно першої або останньої базової лінії. Інакше кажучи, встановлює власну лінію вирівнювання першої чи останньої базової лінії блока так, щоб вона знаходилася на одному рівні з відповідною першою чи останньою спільною базовою лінією всіх блоків групи (у своїй окремій групі зі спільною базовою лінією). Запасний варіант шикування за first baselinestart, а для last baselineend.

space-between

Елементи рівномірно розподілені в межах контейнера шикування вздовж головної осі. Проміжки між кожними двома сусідніми елементами – однакові. Перший елемент знаходиться прямо на початковому краю, а останній – прямо на кінцевому краю.

space-around

Елементи рівномірно розподілені в межах контейнера шикування вздовж головної осі. Проміжки між кожними двома сусідніми елементами – однакові. Незайнятий простір перед першим та після останнього елемента дорівнює половині простору між кожними двома сусідніми елементами.

space-evenly

Елементи рівномірно розподілені в межах контейнера шикування вздовж головної осі Простір між кожними двома елементами, а також між початковим краєм та першим елементом, як і між кінцевим краєм та останнім елементом, цілковито однаковий.

stretch

Якщо сума довжин елементів за головною віссю менша за довжину контейнера шикування, то будь-які елементи з автоматичною довжиною кожен отримують рівне (без дотримання пропорцій) збільшення довжини, втім, із дотриманням обмежень, накладених max-height та max-width (або еквівалентною функціональністю), тож сума довжин якраз заповнює контейнер шикування вздовж головної осі.

Зверніть увагу: stretch не підтримується гнучкими блоками (flexbox).

safe

Використовується поруч із ключовим словом шикування. Якщо обране ключове слово означає, що елемент переповнює контейнер шикування, приводячи до втрати даних, елемент натомість шикується так, ніби режим шикування – start.

unsafe

Використовується поруч із ключовим словом шикування. Незалежно від відносних довжин елемента та контейнера шикування, і – незалежно від того, чи переповнення може привести до втрати даних, дотримується вказаний режим шикування.

Формальне визначення

Формальний синтаксис

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);
}

Результат

Специфікації

Специфікація
Unknown specification
              <br />
              <small>
                  # align-justify-content
                </small>
            </a>
          </td>
        </tr><tr>
          <td>
            <a href="https://w3c.github.io/csswg-drafts/css-flexbox/#justify-content-property">
              Unknown specification
              
              <br />
              <small>
                  # justify-content-property
                </small>
            </a>
          </td>
        </tr>
      </tbody>
    </table>

Сумісність із браузерами

desktop mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet
justify-content
Chrome Full support 29
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 4.4
Chrome Android Full support 29
Firefox for Android Full support 20
Opera Android Full support 12.1
Safari on iOS Full support 9
Samsung Internet Full support 2.0
Supported in Flex Layout
Chrome Full support 52
Edge Full support 12
Firefox Full support 20
footnote
Internet Explorer Full support 11
Opera Full support 12.1
Safari Full support 7
WebView Android Full support 52
Chrome Android Full support 52
Firefox for Android Full support 20
footnote
Opera Android Full support 12.1
Safari on iOS Full support 7
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
footnote
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
footnote
Safari on iOS Full support 9
Samsung Internet Full support 17.0
safe and unsafe
Chrome No support No
footnote
Edge No support No
footnote
Firefox Full support 63
Internet Explorer No support No
Opera No support No
footnote
Safari No support No
footnote
WebView Android No support No
footnote
Chrome Android No support No
footnote
Firefox for Android Full support 63
Opera Android No support No
footnote
Safari on iOS No support No
footnote
Samsung Internet No support No
footnote
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
footnote
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

Дивіться також