Свойство CSS `white-space`
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
white-space — CSS-свойство сокращённой записи, определяющее, как обрабатываются пробельные символы внутри элемента.
Попробуйте
white-space: normal;
white-space: pre;
white-space: pre-wrap;
white-space: pre-line;
white-space: wrap;
white-space: collapse;
white-space: preserve nowrap;
<section class="default-example" id="default-example">
<div id="example-element">
<p>
But ere she from the church-door stepped She smiled and told us why: 'It
was a wicked woman's curse,' Quoth she, 'and what care I?' She smiled, and
smiled, and passed it off Ere from the door she stept—
</p>
</div>
</section>
#example-element {
width: 16rem;
}
#example-element p {
border: 1px solid #c5c5c5;
padding: 0.75rem;
text-align: left;
}
Свойство определяет два параметра:
- Сворачиваются ли пробельные символы и каким образом.
- Переносятся ли строки и каким образом.
Примечание: Чтобы слова могли переноситься внутри себя, используйте вместо этого overflow-wrap, word-break или hyphens.
Составные свойства
Это свойство является сокращённой записью следующих свойств CSS:
Примечание: Спецификация определяет третье составное свойство: white-space-trim, которое пока не реализовано ни в одном браузере.
Синтаксис
/* Single keyword values */ white-space: normal; white-space: pre; white-space: pre-wrap; white-space: pre-line; /* white-space-collapse and text-wrap-mode shorthand values */ white-space: nowrap; white-space: wrap; white-space: break-spaces; white-space: collapse; white-space: preserve nowrap; /* Global values */ white-space: inherit; white-space: initial; white-space: revert; white-space: revert-layer; white-space: unset;
Значения
Значения свойства white-space можно указать с помощью одного или двух ключевых слов, представляющих значения свойств white-space-collapse и text-wrap-mode, либо следующих специальных ключевых слов:
-
normal - Последовательности пробельных символов сворачиваются. Символы новой строки в исходном тексте обрабатываются так же, как и другие пробельные символы. Строки переносятся при необходимости, чтобы заполнить строчные блоки. Эквивалентно
collapse wrap. -
pre - Последовательности пробельных символов сохраняются. Строки переносятся только в местах символов новой строки в исходном тексте и элементов
<br>. Эквивалентноpreserve nowrap. -
pre-wrap - Последовательности пробельных символов сохраняются. Строки переносятся в местах символов новой строки, элементов
<br>, а также при необходимости, чтобы заполнить строчные блоки. Эквивалентноpreserve wrap. -
pre-line - Последовательности пробельных символов сворачиваются. Строки переносятся в местах символов новой строки, элементов
<br>, а также при необходимости, чтобы заполнить строчные блоки. Эквивалентноpreserve-breaks wrap.
Примечание: Использование свойства white-space в качестве сокращённой записи — относительно новая возможность (см. совместимость с браузерами). Изначально у него было шесть ключевых слов-значений; теперь значение nowrap интерпретируется как значение свойства text-wrap-mode, а значение break-spaces — как значение свойства white-space-collapse. Четыре ключевых слова, перечисленные выше, по-прежнему относятся только к свойству white-space, но для них существуют эквиваленты в виде длинной записи. Изменение, превратившее white-space в свойство сокращённой записи, расширяет набор допустимых значений, добавляя ещё больше ключевых слов и их комбинаций, например wrap и collapse.
В следующей таблице описано поведение этих четырёх ключевых слов-значений свойства white-space:
| Символы новой строки | Пробелы и табуляции | Перенос текста | Пробелы в конце строки | Другие разделители пробелов в конце строки | |
|---|---|---|---|---|---|
normal | Сворачиваются | Сворачиваются | Переносится | Удаляются | Выступают |
pre | Сохраняются | Сохраняются | Не переносится | Сохраняются | Не переносится |
pre-wrap | Сохраняются | Сохраняются | Переносится | Выступают | Выступают |
pre-line | Сохраняются | Сворачиваются | Переносится | Удаляются | Выступают |
По умолчанию ширина табуляции равна 8 пробелам; её можно настроить с помощью свойства tab-size. При значениях normal, nowrap и pre-line каждый символ табуляции преобразуется в пробел (U+0020).
Примечание: Следует различать пробелы и другие разделители пробелов. Они определяются следующим образом:
- пробелы
- Пробелы (U+0020), символы табуляции (U+0009) и разделители сегментов (например, символы новой строки).
- другие разделители пробелов
- Все остальные разделители пробелов, определённые в Unicode, за исключением уже определённых как пробелы.
Если указано, что пробельные символы должны выступать, это может повлиять на размер блока при его измерении для определения внутренних размеров.
Формальное определение
| Исходное значение | normal |
|---|---|
| Применяется к | всем элементам |
| Наследуется | да |
| Вычисленное значение | как указано |
| Тип анимации | дискретный |
Формальный синтаксис
white-space =
normal |
pre |
pre-wrap |
pre-line |
<'white-space-collapse'> ||
<'text-wrap-mode'>
Примеры
Основной пример
code {
white-space: pre;
}
Переносы строк внутри элементов <pre>
pre {
white-space: pre-wrap;
}
В действии
<div id="css-code" class="box">
p { white-space:
<select>
<option>normal</option>
<option>nowrap</option>
<option>pre</option>
<option>pre-wrap</option>
<option>pre-line</option>
<option>break-spaces</option>
</select>
}
</div>
<div id="results" class="box">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
</div>
.box {
width: 350px;
padding: 16px;
}
#css-code {
background-color: gainsboro;
font-size: 16px;
font-family: monospace;
}
#css-code select {
font-family: inherit;
width: 100px;
}
#results {
background-color: rgb(230 230 230);
overflow-x: scroll;
white-space: normal;
font-size: 14px;
}
const select = document.querySelector("#css-code select");
const results = document.querySelector("#results p");
select.addEventListener("change", (e) => {
results.style.setProperty("white-space", e.target.value);
});
Управление переносом строк в таблицах
HTML
<table>
<tbody>
<tr>
<td></td>
<td>Very long content that splits</td>
<td class="nw">Very long content that don't split</td>
</tr>
<tr>
<td class="nw">white-space:</td>
<td>normal</td>
<td>nowrap</td>
</tr>
</tbody>
</table>
CSS
table {
border-collapse: collapse;
border: solid black 1px;
width: 250px;
height: 150px;
}
td {
border: solid 1px black;
text-align: center;
}
.nw {
white-space: nowrap;
}
Результат
Несколько строк в текстовом элементе SVG
Свойство CSS white-space можно использовать для создания нескольких строк в элементе <text>, в котором по умолчанию перенос строк не выполняется.
HTML
Текст внутри элемента <text> необходимо разделить на несколько строк, чтобы распознавались символы новой строки. После первой строки пробельные символы в остальной части текста необходимо удалить.
<svg viewBox="0 0 320 150"> <text y="20" x="10">Here is an English paragraph that is broken into multiple lines in the source code so that it can be more easily read and edited in a text editor. </text> </svg>
CSS
text {
white-space: break-spaces;
}
Результат
Спецификации
| Спецификация |
|---|
| Модуль CSS Text, уровень 4 # white-space-property |
| Масштабируемая векторная графика (SVG) 2 # TextWhiteSpace |
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari на iOS | Samsung Internet | WebView для Android | WebView на iOS | |
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 |
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
1–3.6
|
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 |
Нет |
Нет |
Нет |
Нет |
Нет |
shorthand_values |
114Принимает только значения дляwhite-space-collapse и text-wrap-mode, но не для white-space-trim. |
114Принимает только значения дляwhite-space-collapse и text-wrap-mode, но не для white-space-trim. |
124Принимает только значения дляwhite-space-collapse и text-wrap-mode, но не для white-space-trim. |
100Принимает только значения дляwhite-space-collapse и text-wrap-mode, но не для white-space-trim. |
Нет |
114Принимает только значения дляwhite-space-collapse и text-wrap-mode, но не для white-space-trim. |
124Принимает только значения дляwhite-space-collapse и text-wrap-mode, но не для white-space-trim. |
76Принимает только значения дляwhite-space-collapse и text-wrap-mode, но не для white-space-trim. |
Нет |
23.0Принимает только значения дляwhite-space-collapse и text-wrap-mode, но не для white-space-trim. |
114Принимает только значения дляwhite-space-collapse и text-wrap-mode, но не для white-space-trim. |
Нет |
svg_elements |
Нет |
12–79 |
36 |
Нет |
Нет |
Нет |
36 |
Нет |
Нет |
Нет |
Нет |
Нет |
textarea_support |
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 |
См. также
- Свойства, определяющие, как слова переносятся внутри себя:
overflow-wrap,word-break,hyphens tab-size- Обработка пробельных символов в CSS
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/white-space