Содержание

white-space | htmlbook.ru

Internet ExplorerChromeOperaSafariFirefoxAndroidiOS
6.0+8.0+1.0+4.0+9.5+1.0+3.0+1.0+3.5+1.0+1.0+

Краткая информация

Версии CSS

CSS 1CSS 2CSS 2.1CSS 3

Описание

Свойство white-space устанавливает, как отображать
пробелы между словами. В обычных условиях любое количество пробелов в коде HTML
показывается на веб-странице как один. Исключением является тег <pre>,
помещенный в этот контейнер текст выводится со всеми пробелами, как он был отформатирован
пользователем. Таким образом, white-space имитирует
работу тега <pre>, но в отличие от него не меняет шрифт
на моноширинный.

Синтаксис

white-space: normal | nowrap | pre | pre-line | pre-wrap | inherit

Значения

normal
Текст в окне браузера выводится как обычно, переносы строк устанавливаются
автоматически.
nowrap
Пробелы не учитываются, переносы строк в коде HTML игнорируются, весь текст отображается одной строкой;
вместе с тем, добавление тега <br> переносит текст
на новую строку.
pre
Текст показывается с учетом всех пробелов и переносов, как они были добавлены
разработчиком в коде HTML.
Если строка получается слишком длинной и не помещается в окне браузера, то будет добавлена горизонтальная полоса прокрутки.
pre-line
В тексте пробелы не учитываются, текст автоматически переносится на следующую строку, если он не помещается в заданную область.
pre-wrap
В тексте сохраняются все пробелы и переносы, однако если строка по ширине не помещается в заданную область, то текст автоматически будет перенесен на следующую строку.
inherit
Наследует значение родителя.

Действие значений на текст представлено в табл. 1.

Табл. 1. Перенос текста и пробелы при разных значениях white-space
ЗначениеПеренос текстаПробелы
normalПереноситсяНе учитываются
nowrapНе переноситсяНе учитываются
preНе переноситсяУчитываются
pre-lineПереноситсяНе учитываются
pre-wrapПереноситсяУчитываются

Пример

HTML5CSS2.1IECrOpSaFx

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>white-space</title>
  <style>
   .example {
    border: 1px dashed #634f36; /* Параметры рамки */
    background: #fffff5; /* Цвет фона */
    font-family: "Courier New", Courier, monospace; /* Семейство шрифта */
    padding: 7px; /* Поля вокруг текста */
    margin: 0 0 1em; /* Отступы */
    white-space: pre; /* Учитываются все пробелы и переносы */ 
   } 
   .exampleTitle {
    border: 1px solid black; /* Параметры рамки */
    border-bottom: none; /* Убираем линию снизу */
    padding: 3px; /* Поля вокруг текста */
    display: inline; /* Отображать как встроенный элемент */
    background: #efecdf; /* Цвет фона */
    font-weight: bold; /* Жирное начертание */
    font-size: 90%; /* Размер шрифта */
    margin: 0; /* Убираем отступы */
    white-space: nowrap; /* Переносов в тексте нет */
   }
  </style>
 </head>
 <body> 
  
  <p>Пример</p>
  <p>
   &lt;html&gt;
   &lt;body&gt;
   &lt;b&gt;Великая теорема Ферма&lt;/b&gt;&lt;br&gt;
   &lt;i&gt;X &lt;sup&gt;&lt;small&gt;n&lt;/small&gt;&lt;/sup&gt;
   + Y &lt;sup&gt;&lt;small&gt;n&lt;/small&gt;&lt;/sup&gt; =
   Z &lt;sup&gt;&lt;small&gt;n&lt;/small&gt;&lt;/sup&gt;&lt;/i&gt;&lt;br&gt;
   где n - целое число &gt; 2
   &lt;/body&gt;
   &lt;/html&gt;
  </p>
  
 </body>
</html>

Результат данного примера показан на рис. 1.

Рис. 1. Применение свойства white-space

Объектная модель

[window.]document.getElementById(«elementID»).style.whiteSpace

Браузеры

Браузер Internet Explorer до версии 7.0 включительно не поддерживает значения pre-line, pre-wrap и inherit. Для <textarea> значения normal и pre ведут себя как pre-wrap, а значение nowrap ведет себя как pre-line.

Opera до версии 9.5 не поддерживает значение pre-line. Для <textarea> значения normal и pre ведут себя как pre-wrap, а значение nowrap ведет себя как pre-line.

Safari до версии 3.0 и iOS не поддерживают значения pre-wrap и pre-line.

Firefox до версии 2.0 включительно не поддерживает значения pre-line и pre-wrap. Для <textarea> значения normal, nowrap, и pre воспринимаются как pre-wrap.

white-space — Веб-технологии для разработчиков

white-spaceChrome
Полная поддержка

1
Edge
Полная поддержка

12
Firefox
Полная поддержка

1
IE
Полная поддержка

5.5
Opera
Полная поддержка

4
Safari
Полная поддержка

1
WebView Android
Полная поддержка

1
Chrome Android
Полная поддержка

18
Firefox Android
Полная поддержка

4
Opera Android
Полная поддержка

10.1
Safari iOS
Полная поддержка

1
Samsung Internet Android
Полная поддержка

1.0
break-spacesChrome
Полная поддержка

76
Edge
Полная поддержка

79
Firefox
Полная поддержка

69
IE
Нет поддержки

Нет
Opera
Полная поддержка

62
Safari
Полная поддержка

13.1
WebView Android
Полная поддержка

76
Chrome Android
Полная поддержка

76
Firefox Android
Нет поддержки

Нет
Opera Android
Полная поддержка

54
Safari iOS
Полная поддержка

13.4
Samsung Internet Android
Полная поддержка

12.0
nowrapChrome
Полная поддержка

1
Edge
Полная поддержка

12
Firefox
Полная поддержка

1
IE
Полная поддержка

5.5
Opera
Полная поддержка

4
Safari
Полная поддержка

1
WebView Android
Полная поддержка

1
Chrome Android
Полная поддержка

18
Firefox Android
Полная поддержка

4
Opera Android
Полная поддержка

10.1
Safari iOS
Полная поддержка

1
Samsung Internet Android
Полная поддержка

1.0
preChrome
Полная поддержка

1
Edge
Полная поддержка

12
Firefox
Полная поддержка

1
IE
Полная поддержка

6
Opera
Полная поддержка

4
Safari
Полная поддержка

1
WebView Android
Полная поддержка

37
Chrome Android
Полная поддержка

18
Firefox Android
Полная поддержка

4
Opera Android
Полная поддержка

14
Safari iOS
Полная поддержка

1
Samsung Internet Android
Полная поддержка

1.0
pre-lineChrome
Полная поддержка

1
Edge
Полная поддержка

12
Firefox
Полная поддержка

3.5
IE
Полная поддержка

8
Opera
Полная поддержка

9.5
Safari
Полная поддержка

3
WebView Android
Полная поддержка

37
Chrome Android
Полная поддержка

18
Firefox Android
Полная поддержка

4
Opera Android
Полная поддержка

14
Safari iOS
Полная поддержка

1
Samsung Internet Android
Полная поддержка

1.0
pre-wrapChrome
Полная поддержка

1
Edge
Полная поддержка

12
Firefox
Полная поддержка

3


Полная поддержка

3

Нет поддержки
1 — 3.6
С префиксом Требует вендорный префикс: -moz-
IE
Полная поддержка

8


Полная поддержка

8
Замечания From Internet Explorer 5.5 to 7, word-wrap: break-word; can be used for line breaks in pre elements.
Opera
Полная поддержка

8
Safari
Полная поддержка

3
WebView Android
Полная поддержка

37
Chrome Android
Полная поддержка

18
Firefox Android
Полная поддержка

4
Opera Android
Полная поддержка

14
Safari iOS
Полная поддержка

1
Samsung Internet Android
Полная поддержка

1.0
Support in SVGChrome
Нет поддержки

Нет
Edge
Нет поддержки
12 — 79
Firefox
Полная поддержка

36
IE
Полная поддержка

10
Opera
Нет поддержки

Нет
Safari
Нет поддержки

Нет
WebView Android
Нет поддержки

Нет
Chrome Android
Нет поддержки

Нет
Firefox Android
Полная поддержка

36
Opera Android
Нет поддержки

Нет
Safari iOS
Нет поддержки

Нет
Samsung Internet Android
Нет поддержки

Нет
Support on <textarea>Chrome
Полная поддержка

1
Edge
Полная поддержка

12
Firefox
Полная поддержка

36
IE
Полная поддержка

5.5
Opera
Полная поддержка

4
Safari
Полная поддержка

1
WebView Android
Полная поддержка

37
Chrome Android
Полная поддержка

18
Firefox Android
Полная поддержка

36
Opera Android
Полная поддержка

14
Safari iOS
Полная поддержка

1
Samsung Internet Android
Полная поддержка

1.0

Свойство white-space — разрывы строк длинного текста, пробелы между словами

Свойство white-space устанавливает как переносить текст
на новую строку, а также как отображать пробелы между словами и переносы
строк (места, где был нажат Enter при наборе кода).

Синтаксис

селектор {
white-space: nowrap | pre | pre-line | pre-wrap | normal;
}

Значения

ЗначениеОписание
nowrap Запрещает тексту переносится на другую строку, даже если он не помещается
в ширину контейнера (в этом случае текст просто вылезет за его границы).
Однако, добавление тега br заставит текст
перенестись на новую строку.
pre Текст показывается так, как был набран в блокноте при верстке сайта: со всеми пробелами и
enter-ами (если в коде набрано несколько пробелов — на экране тоже будет несколько).
При этом браузер не будет переносить текст на новую строку, если он не помещается
в контейнер — текст просто вылезет за его границы.


Аналог тега pre, но в отличие от него не меняет
шрифт на моноширинный (про моноширинный шрифт см.
свойство font-family).

pre-wrap То же самое, что и pre, отличие в том, что если текст слишком длинный и не влазит в контейнер —
браузер перенесет его на другую строку.
pre-line Браузер учитывает только Enter-ы в HTML коде и игнорирует все остальное (несколько
пробелов будут выглядеть как один, браузер сам расставляет разрывы строк).
normal Стандартное поведение: браузер сам расставляет разрывы строки так, чтобы
слова поместились в контейнер. Несколько пробелов в коде будут выглядеть
как один на экране.

Значение по умолчанию: normal.

Пример . Значение nowrap

В данном примере текст не поместится в контейнер и вылезет за его границы,
так как задано значение nowrap:

<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elitorire.
</div>

#elem {
width: 200px;
white-space: nowrap;
border: 1px solid red;
}

:

Пример . Значение nowrap и тег br

Если добавить тег br — текст перенесется на новую строку
(именно в том месте, где стоит br):

<div>
Lorem ipsum dolor sit <br> amet, consectetur adipiscing elitorire.
</div>

#elem {
width: 200px;
white-space: nowrap;
border: 1px solid red;
}

:

Пример . Значение pre

В данном примере текст показывается так, как был набран в редакторе HTML кода
(со всеми отступами клавишей Tab, с Enter и так далее):

<div>
Lorem ipsum

dolor sit amet, consectetur adipiscing elitorire.
</div>

#elem {
width: 200px;
white-space: pre;
border: 1px solid red;
}

:

Пример . Значение pre-wrap

А сейчас текст показывается так, как был набран в редакторе HTML кода,
однако, вылезающие части переносятся на новую строку:

<div>
Lorem ipsum

dolor sit amet, consectetur adipiscing elitorire.
</div>

#elem {
width: 200px;
white-space: pre-wrap;
border: 1px solid red;
}

:

Смотрите также

  • свойства word-break
    и overflow-wrap,
    которые позволяют перенести буквы длинного слова на новую строку
  • свойство tab-size,
    которое устанавливает размер отступа, созданного клавишей Tab
  • свойство hyphens,
    которое включает переносы слов по слогам
  • свойство overflow,
    которое обрезает вылезающие за границу блока части
  • тег pre,
    который показывает текст так, как он был набран в редакторе HTML кода

white-space | CSS | WebReference

Свойство white-space устанавливает, как отображать пробелы между словами. В обычных условиях любое количество пробелов в коде HTML показывается на веб-странице как один. Исключением является элемент <pre>, помещённый в этот контейнер текст выводится со всеми пробелами, как он был отформатирован пользователем. Таким образом, white-space имитирует работу <pre>, но в отличие от него не меняет шрифт на моноширинный.

Краткая информация

Значение по умолчаниюnormal
НаследуетсяДа
ПрименяетсяКо всем элементам
АнимируетсяНет

Синтаксис

white-space: normal | nowrap | pre | pre-line | pre-wrap

Обозначения

ОписаниеПример
<тип>Указывает тип значения.<размер>
A && BЗначения должны выводиться в указанном порядке.<размер> && <цвет>
A | BУказывает, что надо выбрать только одно значение из предложенных (A или B).normal | small-caps
A || BКаждое значение может использоваться самостоятельно или совместно с другими в произвольном порядке.width || count
[ ]Группирует значения.[ crop || cross ]
*Повторять ноль или больше раз.[,<время>]*
+Повторять один или больше раз.<число>+
?Указанный тип, слово или группа не является обязательным.inset?
{A, B}Повторять не менее A, но не более B раз.<радиус>{1,4}
#Повторять один или больше раз через запятую.<время>#

Значения

normal
Текст в окне браузера выводится как обычно, переносы строк устанавливаются автоматически.
nowrap
Пробелы не учитываются, переносы строк в коде HTML игнорируются, весь текст отображается одной строкой; вместе с тем, добавление <br> переносит текст на новую строку.
pre
Текст показывается с учётом всех пробелов и переносов, как они были добавлены разработчиком в коде HTML. Если строка получается слишком длинной и не помещается в окне браузера, то будет добавлена горизонтальная полоса прокрутки.
pre-line
В тексте пробелы не учитываются, текст автоматически переносится на следующую строку, если он не помещается в заданную область.
pre-wrap
В тексте сохраняются все пробелы и переносы, однако если строка по ширине не помещается в заданную область, то текст автоматически будет перенесён на следующую строку.

Действие значений на текст представлено в табл. 1.

Табл. 1. Перенос текста и пробелы при разных значениях white-space
ЗначениеПеренос текстаПробелы
normalПереноситсяНе учитываются
nowrapНе переноситсяНе учитываются
preНе переноситсяУчитываются
pre-lineПереноситсяНе учитываются
pre-wrapПереноситсяУчитываются

Пример

<!DOCTYPE html>
<html>
<head>
<meta charset=»utf-8″>
<title>white-space</title>
<style>
.example {
border: 1px dashed #634f36; /* Параметры рамки */
background: #fffff5; /* Цвет фона */
font-family: «Courier New», Courier, monospace; /* Семейство шрифта */
padding: 7px; /* Поля вокруг текста */
margin: 0 0 1em; /* Отступы */
white-space: pre; /* Учитываются все пробелы и переносы */
}
.exampleTitle {
border: 1px solid black; /* Параметры рамки */
border-bottom: none; /* Убираем линию снизу */
padding: 3px; /* Поля вокруг текста */
display: inline; /* Отображать как встроенный элемент */
background: #efecdf; /* Цвет фона */
font-weight: bold; /* Жирное начертание */
font-size: 90%; /* Размер шрифта */
margin: 0; /* Убираем отступы */
white-space: nowrap; /* Переносов в тексте нет */
}
</style>
</head>
<body>
<p>Пример</p>
<p>
&lt;html&gt;
&lt;body&gt;
&lt;b&gt;Великая теорема Ферма&lt;/b&gt;&lt;br&gt;
&lt;i&gt;X &lt;sup&gt;&lt;small&gt;n&lt;/small&gt;&lt;/sup&gt;
+ Y &lt;sup&gt;&lt;small&gt;n&lt;/small&gt;&lt;/sup&gt; =
Z &lt;sup&gt;&lt;small&gt;n&lt;/small&gt;&lt;/sup&gt;&lt;/i&gt;&lt;br&gt;
где n — целое число &gt; 2
&lt;/body&gt;
&lt;/html&gt;
</p>
</body>
</html>

Результат данного примера показан на рис. 1.

Рис. 1. Применение свойства white-space

Объектная модель

Объект.style.whiteSpace

Примечание

Браузер Internet Explorer до версии 7.0 включительно не поддерживает значения pre-line и pre-wrap. Для <textarea> значения normal и pre ведут себя как pre-wrap, а значение nowrap ведёт себя как pre-line.

Opera до версии 9.5 не поддерживает значение pre-line. Для <textarea> значения normal и pre ведут себя как pre-wrap, а значение nowrap ведет себя как pre-line.

В Firefox для <textarea> значения normal, nowrap, и pre воспринимаются как pre-wrap.

Спецификация

Каждая спецификация проходит несколько стадий одобрения.

  • Recommendation (Рекомендация) — спецификация одобрена W3C и рекомендована как стандарт.
  • Candidate Recommendation (Возможная рекомендация) — группа, отвечающая за стандарт, удовлетворена, как он соответствует своим целям, но требуется помощь сообщества разработчиков по реализации стандарта.
  • Proposed Recommendation (Предлагаемая рекомендация) — на этом этапе документ представлен на рассмотрение Консультативного совета W3C для окончательного утверждения.
  • Working Draft (Рабочий проект) — более зрелая версия черновика после обсуждения и внесения поправок для рассмотрения сообществом.
  • Editor’s draft (Редакторский черновик) — черновая версия стандарта после внесения правок редакторами проекта.
  • Draft (Черновик спецификации) — первая черновая версия стандарта.

Браузеры

normal5.5121411
pre6121411
nowrap5.5121411
pre-wrap8121833
pre-line81219.533.5
 
normal1141
pre1141
nowrap1141
pre-wrap1493
pre-line14103

Браузеры

В таблице браузеров применяются следующие обозначения.

  •  — свойство полностью поддерживается браузером со всеми допустимыми значениями;
  •  — свойство браузером не воспринимается и игнорируется;
  •  — при работе возможно появление различных ошибок, либо свойство поддерживается лишь частично, например, не все допустимые значения действуют или свойство применяется не ко всем элементам, которые указаны в спецификации.

Число указывает версию браузера, начиная с которой свойство поддерживается.

Автор и редакторы

Автор: Влад Мержевич

Последнее изменение: 14.11.2018

Редакторы: Влад Мержевич

Поговорим о свойстве white-space | CSS-Tricks по-русски

Поговорим о свойстве white-space

В CSS есть такое полезное свойство, как white-space, которое остаётся без внимания у начинающих верстальщиков. Возможно, вы обходились без него довольно долго, но однажды узнав, что это такое, и как его использовать, вы поймёте как много вы потеряли.

В этой статье я постараюсь описать, в чём разница между различными значениями свойства и как они могут быть использованы.

Немного об HTML.

В HTML, всякий раз когда вы оставляете подряд несколько пробелов (табов или переводов строки), браузер, по умолчанию, будет выводить их как один единственный пробел. Такое поведение позволяет браузеру отделять и размещать элементы наиболее удобным для прочтения способом.

Если вы хотите чтобы все ваши пробелы и переводы строк отображались как в исходном HTML, то вам необходимо использовать тег pre, всё содержимое которого будет отображаться в соответствии с исходным кодом страницы.

Кроме того, можно воспользоваться неразрывным пробелом (&nbsp;), в случае, если вам необходимо, чтобы строки не «схлопывались». Также, в предыдущих версиях HTML был тег nobr для таких целей. Сейчас этот тег не рекомендуется к использованию.

Свойство white-space — это шаг к семантически чистому HTML. Вы можете настроить обработку браузером пробелов, используя CSS.

Определение и возможные значения.

Свойство white-space предназначено для определения поведения браузера при обработке множественных пробелов и переводов строк. Конечно, обрабатываемая часть документа ограничивается CSS-селектором.

Ниже перечислены допустимые значения свойства с описанием каждого из них:

white-space: normal

Значение по умолчанию. Если оно установлено явно, то результатом будет обычный вывод, без использования тега pre. Как и в случае с большинством CSS-свойств, существует только одна причина использовать это значение, когда вы установили это свойство где-либо выше по иерархии свойств или элементов, для того чтобы вернуть обычное поведение элемента.

Повторяющиеся пробелы и разрывы строк игнорируются, для того чтобы наиболее естественно отобразить текст.

white-space: nowrap

Это наиболее используемое значение свойства, поскольку оно делает поведение браузера точно таким же, как и в случае со значением normal, за исключением того, что подавляются разрывы строк, даже в тех случаях когда выводимый текст получается шире чем контейнер для вывода.

Элемент, для которого значение свойства установлено как nowrap, не позволяет тексту и другим inline-элементам переносится естественным образом на новую строку. Вместо этого он продолжает вывод за своими границами, до тех пор, пока текст не закончится, оставляя его на одной линии. Это значение не оказывает никакого эффекта на повторяющиеся пробелы между словами, они по-прежнему «схлопываются» в один, как обычно.

Повторяющиеся пробелы игнорируются, переводы строк не используются, даже если текст не помещается в строке.

white-space: pre

Это значение работает именно так, как ожидается: точно также, как и содержимое тега pre. Все пробелы и переводы строк выводятся точно также как и в исходном HTML. Если какая-нибудь строка шире, чем её родитель, то она не будет разрываться, а будет выводится как одна строка.

Повторяющиеся пробелы и переводы строк выводятся так же как и в исходной разметке, естественные переводы строк не работают.

white-space: pre-line

Это свойство работает также как и normal, за исключением одного момента: переводы строк в исходной разметке являются значимыми. Таким образом, если в разметке между словами несколько пробелом, они будут проигнорированы как обычно, однако, если в разметке встречается перевод строки, при выводе, текст также будет перенесён на новую строку. Это значение не поддерживается в Internet Explorer до 7-ой версии, FireFox до 3-ей версии и Opera до версии 9.2.

Повторяющиеся пробелы игнорируются, переводы строк обрабатываюся.

white-space: pre-wrap

Это значение определяет такое же поведение как и значение pre, за тем исключением что строка переносится в соответствии с границами родительского элемента. Таким образом, текст будет переносится на новую строку, как это было бы при значении normal, а также будут считываться множественные пробелы и переводы строк исходного HTML. Это свойство не поддерживается в Internet Explorer до версии 7, а также FireFox до версии 3.

Обрабатываюся повторяющиеся пробелы и явные переводы строк, а также естественные переводы строк.

Варианты использования

Возможно, наиболее частый случай использования свойства white-space — это применение его к ссылке, которую вы не хотите переносить на новую строку.

На показанном скриншоте, ссылка «Read more »» кавычка (») перенеслась на новую строку, поскольку ей не хватило места. Этого можно избежать применив к ссылке значение nowrap. В этом случае ссылка будет перенесена на новую строку целиком, как неразрывный элемент. Обратите внимание, что свойство white-space было применено только к содержимому элемента. Поэтому ссылка и была перенесена на новую строку целиком. Текст внутри неё — неразрывен.

Заблуждения

У новичков вёрстки часто возникает недопонимание при использовании white-space: nowrap, в случае если они применяют его к inline-элементу и ожидают что он не будет переносится на новую строку. Стоит запомнить, что свойство применяется только к inline-элементам, которые находятся внутри элемента, к которому его применили, а также не оказывают никакого эффекта на блочные элементы и отступы между ними.

PRE и NOWRAP в CSS — свойство white-space: pre-wrap, nowrap, pre-line

19 февраля 2010

Рубрика: HTML&CSS, Важные мелочи

Пишу в качестве напоминания, что в CSS есть аналог тегов <PRE> и <NOBR>, а также свойства таблиц NOWRAP — название ему white-space. Это свойство устанавливает, как отображать пробелы в тексте, а именно:

  1. white-space: normal. Значение по умолчанию, текст ведёт себя как обычно.

  2. white-space: nowrap. Текст идёт одной строкой, переносов не происходит, за исключением вручную расставленных, например, тегом <br>. Если обрамить текст тегом nobr (<nobr>текст</nobr>), то мы получим тот же эффект, что и через свойство css. Аналогично достигается в таблице путём дописки параметра nowrap в теге td. Так что всё на вкус и на цвет, а что использовать — решать вам.

  3. white-space: pre. Выводит текст с пробелами и переносами, как оно было оформлено в коде html. Если строка будет слишком длинной и не помещаться в окно браузера, то появится горизонтальная полоса прокрутки. Имеется два нюанса: 1) аналогом является тег <pre>, но, в отличие от него, не меняет шрифт на моноширинный; 2) не работает в IE6 и младше; 3) работает в  IE7 только при указании <!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01//EN» «http://www.w3.org/TR/html4/strict.dtd»>.

  4. white-space: pre-wrap. Выводит текст с пробелами и переносами, но если строка слишком длинная, то происходит перенос. Не поддерживается IE7 и младше.

  5. white-space: pre-line. Выводит текст с переносами, как было в коде html, но дополнительные пробелы игнорируются (последовательность пробелов отображается как один пробел). Линии также подгоняются по размеру. Не поддерживается IE7 и младше.

В общем, white-space: pre и white-space:nowrap имеют место для частого использования (особенно второй, так как кроссбраузерен), а два последних под вопросом. Тем не менее.

 

В рамках white-space опишу одну проблему, возникающую с хайлайтерами (скрипты, которые подсвечивают код в блогах) — текст в тегах PRE не переносится, а скролится. Для этого был создан универсальный метод (ссылка на оригинал), который я ниже и приведу.

pre {
      white-space: pre;           /* CSS2 */
      white-space: pre-wrap;      /* CSS 2.1 */
      white-space: pre-line;      /* CSS 2.1/3 */
      white-space: -moz-pre-wrap; /* Mozilla */
      white-space: -hp-pre-wrap;  /* HP printers */
      white-space: -o-pre-wrap;   /* Opera 7 */
      white-space: -pre-wrap;     /* Opera 4-6 */
      word-wrap: break-word;      /* Только для динозавра IE */
}

Это наиболее полный код, однако и его можно сократить. Для начала удалим вторую строку, так как она бесполезна — зачем говорить тегу pre, чтобы он вёл себя как тег pre. Четвёртую строку тоже можно удалить, так как свойство удаляет дополнительные пробелы, а они нужны. Шестую строку также можно опустить, сами догадайтесь почему. По большому счёту можно вообще оставить только третью и девятую строки, так как даже седьмая опера уже канула в лету.

 

Пожалуй это всё, что нужно знать о white-space. До новых встреч! =)

CSS

Понравилась статья или журнал? Подписывайся на продолжение!

Похожие записи:

Свойство white-space | CSS справочник

CSS свойства

Определение и применение

CSS свойство white-space определяет как отображать пробелы внутри элемента.

Поддержка браузерами

CSS синтаксис:

white-space:"normal | nowrap | pre | pre-line | pre-wrap | initial | inherit";

JavaScript синтаксис:

object.style.whiteSpace = "pre-wrap"

Значения свойства

ЗначениеОписание
normalЕсли элемент содержит более одного пробельного символа, то браузер интерпретирует их как один (объединяет). Пользовательский перенос на новую строку обрабатывается как пробельный символ. Перенос текста на новую строку происходит автоматически по необходимости (по заполнению отведенной, либо заданной области).
Это значение по умолчанию.
nowrapЕсли элемент содержит более одного пробельного символа, то браузер интерпретирует их как один (объединяет). Пользовательский перенос на новую строку обрабатывается как пробельный символ. Перенос текста на новую строку производится только в том случае если присутствует элемент <br> (текст может выходить из отведённой области).
preВсе пробелы и переносы строк сохраняются (текст может выходить из отведённой области). Значение свойства действует как одноимённый элемент <pre>.
pre-lineЕсли элемент содержит более одного пробельного символа, то браузер интерпретирует их как один (объединяет). Пользовательские переносы на новую строку учитываются. Перенос текста на новую строку происходит автоматически по необходимости (по заполнению отведенной, либо заданной области).
pre-wrapВсе пробелы и переносы строк сохраняются, как при использовании элемента <pre>, но в случае если элемент выходит из заданной области, то он переносится на новую строку в автоматическом режиме.
initialУстанавливает свойство в значение по умолчанию.
inheritУказывает, что значение наследуется от родительского элемента.

Версия CSS

CSS1

Наследуется

Да.

Анимируемое

Нет.

Пример использования

<!DOCTYPE html>
<html>
<head>
<title>Пример использования свойства white-space.</title>
<style> 
.test {
white-space : pre; /* задаём, что все пробелы и перенос строк сохраняются */
width : 200px; /* задаём ширину текстового блока. */
background-color : Tan; /* задаём задний фон блока. */
}
</style>
</head>
	<body>
		<p class = "test">              Все пробелы и переносы строк сохраняются
			(текст может выходить из отведённой области).
			Значение свойства действует как одноимённый элемент <pre>
		</p>
	</body>
</html>

Пример использования свойства CSS white-space.CSS свойства

белого пространства | htmlbook.ru

Internet Explorer Хром Opera Safari Firefox Android iOS
6.0+ 8.0+ 1.0+ 4.0+ 9,5+ 1.0+ 3.0+ 1.0+ 3.5+ 1.0+ 1.0+

Краткая информация

Версии CSS

CSS 1 CSS 2 CSS 2.1 CSS 3

Описание

ство Свойство white-space устанавливает, как отображать
пробелы между словами. В обычных условиях любое количество пробелов в коде HTML
показывается на веб-странице как один. Исключением является тег

,
  помещенный в этот контейнер текст выводится со всеми пробелами, как он был отформатирован
  пользователь. Таким образом, white-space имитирует
  работу тега 
, но в отличие от него не меняет шрифт
  на моноширинный.

Синтаксис

пробел: нормальный | nowrap | предварительно | предварительная линия | предварительная упаковка | унаследовать

Значения

нормальный
Текст в окне выводится как обычно, переносы строк устанавливаются автоматически.
nowrap
Пробелы не учитываются, переносы строк в коде HTML игнорируются, весь текст отображается одной строкой; вместе с тем, добавление тега
переносит текст на новую строку.
до
Текст показывается с учетом всех пробелов и переносов, как они были добавлены разработчиком в коде HTML.Строка получается слишком длинной и не помещается в окно, то будет добавлена ​​горизонтальная полоса прокрутки.
предварительная линия
В тексте пробелы не учитываются, текст автоматически переносится на строку, если он не помещается в заданную область.
предварительная упаковка
В тексте сохраняются все пробелы и переносы, однако если строка по ширине не помещается в заданную область, то текст автоматически будет перенесен на следующую строку.
унаследовать
Наследует значение родителя.

Действие значений на представлен в табл. 1.

Табл. 1. Перенос текста и пробелы при разных значениях пробел
Значение Перенос текста Пробелы
нормальный Переносится Не учитываются
nowrap Не переносится Не учитываются
до Не переносится Учитываются
предварительная версия Переносится Не учитываются
предварительная упаковка Переносится Учитываются

Пример

HTML5CSS2.1IECrOpSaFx

  

 
  
   пробел 
  <стиль>
   .пример {
    граница: 1px пунктирная # 634f36; / * Параметры рамки * /
    фон: # fffff5; / * Цвет фона * /
    семейство шрифтов: "Courier New", Courier, моноширинный; / * Семейство шрифта * /
    отступ: 7 пикселей; / * Поля вокруг текста * /
    маржа: 0 0 1em; / * Отступы * /
    белое пространство: предварительно; / * Учитываются все пробелы и переносы * /
   }
   .exampleTitle {
    граница: сплошной черный 1px; / * Параметры рамки * /
    нижняя граница: нет; / * Убираем линию снизу * /
    отступ: 3 пикселя; / * Поля вокруг текста * /
    дисплей: встроенный; / * Отображать как встроенный элемент * /
    фон: #efecdf; / * Цвет фона * /
    font-weight: жирный; / * Жирное начертание * /
    размер шрифта: 90%; / * Размер шрифта * /
    маржа: 0; / * Убираем отступы * /
    белое пространство: nowrap; / * Переносов в тексте нет * /
   }
  
 
 
  
  

Пример

& lt; html & gt; & lt; body & gt; & lt; b & gt; Великая теорема Ферма & lt; / b & gt; & lt; br & gt; & lt; i & gt; X & lt; sup & gt; & lt; small & gt; n & lt; / small & gt; & lt; / sup & gt; + Y & lt; sup & gt; & lt; small & gt; n & lt; / small & gt; & lt; / sup & gt; знак равно Z & lt; sup & gt; & lt; small & gt; n & lt; / small & gt; & lt; / sup & gt; & lt; / i & gt; & lt; br & gt; где n - целое число & gt; 2 & lt; / body & gt; & lt; / html & gt;

Результат данного примера показан на рис.1.

Рис. 1. Применение свойств white-space

Объектная модель

[окно.] Document.getElementById ("elementID"). Style.whiteSpace

Браузеры

Браузер Internet Explorer до версии 7.0 включительно не поддерживает значения pre-line, pre-wrap и inherit. Для