CSS свойство white-space
Определение и применение
Свойство white-space управляет обработкой пробелов, переводов строк и автоматическим переносом текста.
Это сокращённая запись для white-space-collapse и text-wrap-mode.
Попробуйте значения white-space
В HTML есть повторные пробелы и перевод строки. Сравните их сохранение и автоматический перенос; длинную строку можно прокрутить.
white-space: normal
HTML и CSS примера
<div class="demo-target">
Первая строка Вторая строка с достаточно длинным текстом для переноса
</div>
.demo-target {
box-sizing: border-box;
width: 100%;
max-width: 300px;
padding: 16px;
border: 2px solid #245a85;
background: #fff3d6;
color: #172c3d;
font: 18px/1.5 system-ui;
overflow: auto;
white-space: normal;
}
.demo-target {
box-sizing: border-box;
width: 100%;
max-width: 300px;
padding: 16px;
border: 2px solid #245a85;
background: #fff3d6;
color: #172c3d;
font: 18px/1.5 system-ui;
overflow: auto;
white-space: nowrap;
}
.demo-target {
box-sizing: border-box;
width: 100%;
max-width: 300px;
padding: 16px;
border: 2px solid #245a85;
background: #fff3d6;
color: #172c3d;
font: 18px/1.5 system-ui;
overflow: auto;
white-space: pre;
}
.demo-target {
box-sizing: border-box;
width: 100%;
max-width: 300px;
padding: 16px;
border: 2px solid #245a85;
background: #fff3d6;
color: #172c3d;
font: 18px/1.5 system-ui;
overflow: auto;
white-space: pre-wrap;
}
.demo-target {
box-sizing: border-box;
width: 100%;
max-width: 300px;
padding: 16px;
border: 2px solid #245a85;
background: #fff3d6;
color: #172c3d;
font: 18px/1.5 system-ui;
overflow: auto;
white-space: pre-line;
}
Поддержка браузерами
Спецификации: CSS text-4, svgwg
Поддерживается во всех основных браузерах с 2015 года.
Отдельные значения (7) поддерживаются не везде — смотрите таблицу.
| Возможность | Компьютеры | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
white-space | 1 | 12 | 1 | 4 | 1 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 | 1 |
break-spaces | 76 | 79 | 69 | 62 | 13.1 | 76 | 79 | 54 | 13.4 | 12.0 | 76 | 13.4 |
collapse | 114 | 114 | 124 | 100 | 18 | 114 | 124 | 76 | 18 | 23.0 | 114 | 18 |
discard-after | preview | |||||||||||
discard-before | preview | |||||||||||
discard-inner | preview | |||||||||||
none | preview | |||||||||||
normal | 1 | 12 | 1 | 15 | 1 | 18 | 4 | 14 | 1 | 1.0 | 4.4 | 1 |
nowrap | 1 | 12 | 1 | 4 | 1 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 | 1 |
pre | 1 | 12 | 1 | 4 | 1 | 18 | 4 | 14 | 1 | 1.0 | 37 | 1 |
pre-line | 1 | 12 | 3.5 | 9.5 | 3 | 18 | 4 | 14 | 1 | 1.0 | 37 | 1 |
pre-wrap | 1 | 12 | 3 Версия 3 выпущена в 2008 г. Версия 1 выпущена в 2004 г. — Удалено в 3.6; Префикс -moz- | 8 | 3 | 18 | 4 | 14 | 1 | 1.0 | 37 | 1 |
preserve | 114 | 114 | 124 | 100 | 18 | 114 | 124 | 76 | 18 | 23.0 | 114 | 18 |
preserve-breaks | 114 | 114 | 124 | 100 | 18 | 114 | 124 | 76 | 18 | 23.0 | 114 | 18 |
preserve-spaces | 124 | 124 | ||||||||||
| Accepts shorthand values | 114 Версия 114 выпущена в 2023 г. — Частичная поддержка Примечание MDN (англ.) Only accepts values for | 114 Версия 114 выпущена в 2023 г. — Частичная поддержка Примечание MDN (англ.) Only accepts values for | 124 Версия 124 выпущена в 2024 г. — Частичная поддержка Примечание MDN (англ.) Only accepts values for | 100 Версия 100 выпущена в 2023 г. — Частичная поддержка Примечание MDN (англ.) Only accepts values for | 114 Версия 114 выпущена в 2023 г. — Частичная поддержка Примечание MDN (англ.) Only accepts values for | 124 Версия 124 выпущена в 2024 г. — Частичная поддержка Примечание MDN (англ.) Only accepts values for | 76 Версия 76 выпущена в 2023 г. — Частичная поддержка Примечание MDN (англ.) Only accepts values for | 23.0 Версия 23.0 выпущена в 2023 г. — Частичная поддержка Примечание MDN (англ.) Only accepts values for | 114 Версия 114 выпущена в 2023 г. — Частичная поддержка Примечание MDN (англ.) Only accepts values for | |||
| On SVG elements | Версия 12 выпущена в 2015 г. — Удалено в 79 | 36 | 36 | |||||||||
| Support on <textarea> | 1 | 12 | 36 | 4 | 1 | 18 | 36 | 14 | 1 | 1.0 | 37 | 1 |
wrap | 114 | 114 | 124 | 100 | 18 | 114 | 124 | 76 | 18 | 23.0 | 114 | 18 |
поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31
CSS синтаксис:
white-space: normal | pre | pre-wrap | pre-line | <'white-space-collapse'> || <'text-wrap-mode'>;
/* Глобальные значения */
white-space: initial | inherit | unset | revert | revert-layer;|| — одно или несколько значений в любом порядке; | — выбор варианта.
JavaScript синтаксис:
element.style.whiteSpace = "pre-wrap";Начальное значение свойства
normal.
Значения свойства
| Значение | Описание |
|---|---|
normal |
Если элемент содержит более одного пробельного символа, то браузер интерпретирует их как один (объединяет).
Пользовательский перенос на новую строку обрабатывается как пробельный символ. Перенос текста на новую строку
происходит автоматически по необходимости (по заполнению отведенной, либо заданной области). Начальное значение. |
nowrap |
Если элемент содержит более одного пробельного символа, то браузер интерпретирует их как один (объединяет).
Пользовательский перенос на новую строку обрабатывается как пробельный символ. Перенос текста на новую строку
производится только в том случае если присутствует элемент
<br>
(текст может выходить из отведённой области).
|
pre |
Все пробелы и переносы строк сохраняются (текст может выходить из отведённой области). Значение свойства
действует как одноимённый элемент
<pre>.
|
pre-line |
Если элемент содержит более одного пробельного символа, то браузер интерпретирует их как один (объединяет). Пользовательские переносы на новую строку учитываются. Перенос текста на новую строку происходит автоматически по необходимости (по заполнению отведенной, либо заданной области). |
pre-wrap |
Все пробелы и переносы строк сохраняются, как при использовании элемента
<pre>, но в случае если элемент выходит из заданной области, то он переносится на новую строку в автоматическом
режиме.
|
break-spaces |
Сохраняет пробелы, в том числе в конце строки, и допускает перенос после каждого сохранённого пробела. |
collapse | preserve | preserve-breaks | preserve-spaces |
Значения white-space-collapse управляют сохранением пробелов и переводов строк; поддержка отдельных вариантов различается. |
wrap | nowrap |
Значения text-wrap-mode разрешают или запрещают автоматический перенос. |
initial
|
Устанавливает начальное значение свойства. |
inherit
|
Наследует вычисленное значение свойства у родительского элемента. |
unset |
Для наследуемого свойства white-space наследует вычисленное значение у родительского элемента.
|
revert |
Отменяет заданное в коде значение свойства для этого элемента: применяются пользовательские или стандартные стили браузера. Если они не задают значение, свойство наследуется или получает начальное значение по обычным правилам. Не возвращает значение из предыдущей строки CSS. |
revert-layer |
Сбрасывает значение свойства для текущего слоя каскада @layer. Применяется значение из другого слоя
по правилам каскада; если подходящего значения нет, возможен откат к стилям пользователя или браузера.
|
Спецификация
CSS Text — спецификация white-space.
Наследуется
Да.
Анимируемое
Тип анимации — дискретный: значение переключается без плавных промежуточных положений.
Примеры, попробуйте сами
Пробелы и переводы строк
В HTML несколько пробелов и перевод строки. Замените pre-wrap на pre или normal.
base.css
* {
box-sizing: border-box;
}
body {
margin: 16px;
font:
16px/1.5 system-ui,
sans-serif;
color: #172c3d;
}
section {
margin-bottom: 24px;
min-width: 0;
}
h3 {
margin: 0 0 12px;
font-size: 16px;
}
.item {
padding: 8px;
min-width: 0;
background: #c5dbea;
border: 1px solid #35658a;
overflow-wrap: anywhere;
}
index.html
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>Пробелы и переводы строк</title>
</head>
<body>
<section>
<h3>Вариант A</h3>
<div class="sample first">Первая строка Вторая строка с текстом</div>
</section>
<section>
<h3>Вариант B</h3>
<div class="sample second">Первая строка Вторая строка с текстом</div>
</section>
</body>
</html>
style.css
.first {
white-space: normal;
}
.second {
white-space: pre-wrap;
}