Spec-Zone.ru › CSS

Свойство 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-collapse
  • text-wrap-mode

Примечание: Спецификация определяет третье составное свойство: 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API