white-space

Властивість CSS white-space (пробіл) задає те, як обробляються пробіли всередині елемента.

Спробуйте його в дії

Ця властивість задає дві речі:

  • Чи перекриваються пробіли, і якщо перекриваються — то як.
  • Чи може відбутися перенос рядка у точці потенційного м'якого перенесення.

Примітка: Аби слова розривались посередині, слід натомість використати overflow-wrap, word-break або hyphens.

Синтаксис

/* Значення – ключові слова */
white-space: normal;
white-space: nowrap;
white-space: pre;
white-space: pre-wrap;
white-space: pre-line;
white-space: break-spaces;

/* Глобальні значення */
white-space: inherit;
white-space: initial;
white-space: revert;
white-space: revert-layer;
white-space: unset;

Властивість white-space задається у вигляді єдиного ключового слова, обраного зі списку значень нижче.

Значення

normal

Кілька пробілів підряд – перекриваються. Символи нового рядка у вихідному коді обробляються як додаткові пробіли. Рядки розриваються так, як необхідно для заповнення їхніх рамок.

nowrap

Перекриває пробіли, як із normal, але нейтралізує розриви шеренги символів (переведення тексту на новий рядок), присутні у вихідному коді.

pre

Кілька пробілів підряд – зберігаються. Шеренги символів розриваються лише на символах нового рядка з вихідного коду та елементах <br>.

pre-wrap

Кілька пробілів підряд – зберігаються. Шеренги символів розриваються лише на символах нового рядка, <br> і тоді, коли необхідно заповнити рядкові рамки.

pre-line

Кілька пробілів підряд – перекриваються. Шеренги символів розриваються на символах нового рядка, на <br> і тоді, коли необхідно заповнити рядкові рамки.

break-spaces

Логіка, ідентична до логіки pre-wrap, окрім того, що:

  • Пробіли підряд завжди займають місце, в тому числі в кінці шеренги.
  • Точка розриву шеренги стоїть після кожного збереженого символу пробілу, в тому числі між двома символами пробілу.
  • Такі збережені проміжки займають простір і не повисають, чим впливають на природний розмір рамки (розміри min-content і max-content).

Наступна таблиця підсумовує логіку різних значень white-space:

Символи нового рядка Пробіли й табуляції Переходи на новий рядок Пробіли-термінатори Пробіли-термінатори інші пробіли-відділювачі
normal Перекриваються Перекриваються Перехід на новий рядок Прибираються Повисають
nowrap Перекриваються Перекриваються Без переходу на новий рядок Прибираються Повисають
pre Зберігаються Зберігаються Не працюють Зберігаються Без переходу на новий рядок
pre-wrap Зберігаються Зберігаються Перехід на новий рядок Повисають Повисають
pre-line Зберігаються Перекриваються Перехід на новий рядок Прибираються Повисають
break-spaces Зберігаються Зберігаються Перехід на новий рядок Перехід на новий рядок Перехід на новий рядок

Примітка: Є різниця між пробілами та іншими пробільними розділювачами. Ці групи визначені наступним чином:

пробіли

Пробіли (U+0020), табуляції (U+0009) та сегментні розриви (як то символи нового рядка).

інші пробільні розділювачі

Вся решта пробільних розділювачів, визначених в Unicode, окрім зазначених вище як пробіли.

Там, де вказано, що пробіл повисає, таке висіння може вплинути на розмір рамки при визначенні її природних розмірів.

Перекриття пробілів

Специфікація Тексту CSS містить розділ Перекриття та перетворення, котрий точно визначає значення вислову "пробіли перекриваються", включно з прикладом та ілюстрацією. Зазвичай це означає зведення кількох пробільних символів підряд до єдиного символу пробілу – хоч іноді воно означає зведення їх до нуля символів (порожнього рядка).

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

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

normal | pre | nowrap | pre-wrap | pre-line | break-spaces

Приклади

Базовий приклад

code {
  white-space: pre;
}

Розриви рядка всередині елементів <pre>

pre {
  white-space: pre-wrap;
}

У дії

HTML

<p>
  Але щоб ви зрозуміли, звідки виникає це хибне уявлення людей, цуратись
  насолоди і вихваляти страждання, я розкрию перед вами всю картину і роз'ясню,
  що саме говорив цей чоловік, який відкрив істину, якого я б назвав зодчим
  щасливого життя. Дійсно, ніхто не відкидає, не зневажає, не уникає насолод
  тільки через те, що це насолоди, але лише через те, що тих, хто не вміє
  розумно вдаватися насолоді, осягають великі страждання.
</p>

Результат

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

Специфікація
Unknown specification
              <br />
              <small>
                  # white-space-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
white-space
Chrome Full support 1
Edge Full support 12
Firefox Full support 1
Internet Explorer Full support 5.5
Opera Full support 4
Safari Full support 1
WebView Android Full support 4.4
Chrome Android Full support 18
Firefox for Android Full support 4
Opera Android Full support 10.1
Safari on iOS Full support 1
Samsung Internet Full support 1.0
break-spaces
Chrome Full support 76
Edge Full support 79
Firefox Full support 69
Internet Explorer No support No
Opera Full support 62
Safari Full support 13.1
WebView Android Full support 76
Chrome Android Full support 76
Firefox for Android No support No
Opera Android Full support 54
Safari on iOS Full support 13.4
Samsung Internet Full support 12.0
nowrap
Chrome Full support 1
Edge Full support 12
Firefox Full support 1
Internet Explorer Full support 5.5
Opera Full support 4
Safari Full support 1
WebView Android Full support 4.4
Chrome Android Full support 18
Firefox for Android Full support 4
Opera Android Full support 10.1
Safari on iOS Full support 1
Samsung Internet Full support 1.0
pre
Chrome Full support 1
Edge Full support 12
Firefox Full support 1
Internet Explorer Full support 6
Opera Full support 4
Safari Full support 1
WebView Android Full support 37
Chrome Android Full support 18
Firefox for Android Full support 4
Opera Android Full support 14
Safari on iOS Full support 1
Samsung Internet Full support 1.0
pre-line
Chrome Full support 1
Edge Full support 12
Firefox Full support 3.5
Internet Explorer Full support 8
Opera Full support 9.5
Safari Full support 3
WebView Android Full support 37
Chrome Android Full support 18
Firefox for Android Full support 4
Opera Android Full support 14
Safari on iOS Full support 1
Samsung Internet Full support 1.0
pre-wrap
Chrome Full support 1
Edge Full support 12
Firefox Full support 3
Internet Explorer Full support 8
footnote
Opera Full support 8
Safari Full support 3
WebView Android Full support 37
Chrome Android Full support 18
Firefox for Android Full support 4
Opera Android Full support 14
Safari on iOS Full support 1
Samsung Internet Full support 1.0
Support in SVG
Chrome No support No
Edge No support 12 –  79
Firefox Full support 36
Internet Explorer Full support 10
Opera No support No
Safari No support No
WebView Android No support No
Chrome Android No support No
Firefox for Android Full support 36
Opera Android No support No
Safari on iOS No support No
Samsung Internet No support No
Support on <textarea>
Chrome Full support 1
Edge Full support 12
Firefox Full support 36
Internet Explorer Full support 5.5
Opera Full support 4
Safari Full support 1
WebView Android Full support 37
Chrome Android Full support 18
Firefox for Android Full support 36
Opera Android Full support 14
Safari on iOS Full support 1
Samsung Internet Full support 1.0

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

  • Властивості, котрі визначають те, як слова розриваються посередині: overflow-wrap, word-break, hyphens