white-space | htmlbook.ru
Internet Explorer | Chrome | 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
показывается на веб-странице как один. Исключением является тег <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.
Значение | Перенос текста | Пробелы |
---|---|---|
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>
<html>
<body>
<b>Великая теорема Ферма</b><br>
<i>X <sup><small>n</small></sup>
+ Y <sup><small>n</small></sup> =
Z <sup><small>n</small></sup></i><br>
где n - целое число > 2
</body>
</html>
</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 | Chrome Полная поддержка 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-spaces | Chrome Полная поддержка 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 |
nowrap | Chrome Полная поддержка 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 |
pre | Chrome Полная поддержка 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-line | Chrome Полная поддержка 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-wrap | Chrome Полная поддержка 1 | Edge Полная поддержка 12 | Firefox Полная поддержка 3
| IE Полная поддержка 8
| 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 SVG | Chrome Нет поддержки Нет | 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, но в отличие от него не меняет |
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.
Значение | Перенос текста | Пробелы |
---|---|---|
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>
<html>
<body>
<b>Великая теорема Ферма</b><br>
<i>X <sup><small>n</small></sup>
+ Y <sup><small>n</small></sup> =
Z <sup><small>n</small></sup></i><br>
где n — целое число > 2
</body>
</html>
</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 (Черновик спецификации) — первая черновая версия стандарта.
Браузеры
normal | 5.5 | 12 | 1 | 4 | 1 | 1 |
pre | 6 | 12 | 1 | 4 | 1 | 1 |
nowrap | 5.5 | 12 | 1 | 4 | 1 | 1 |
pre-wrap | 8 | 12 | 1 | 8 | 3 | 3 |
pre-line | 8 | 12 | 1 | 9.5 | 3 | 3.5 |
normal | 1 | 1 | 4 | 1 |
pre | 1 | 1 | 4 | 1 |
nowrap | 1 | 1 | 4 | 1 |
pre-wrap | 1 | 4 | 9 | 3 |
pre-line | 1 | 4 | 10 | 3 |
Браузеры
В таблице браузеров применяются следующие обозначения.
- — свойство полностью поддерживается браузером со всеми допустимыми значениями;
- — свойство браузером не воспринимается и игнорируется;
- — при работе возможно появление различных ошибок, либо свойство поддерживается лишь частично, например, не все допустимые значения действуют или свойство применяется не ко всем элементам, которые указаны в спецификации.
Число указывает версию браузера, начиная с которой свойство поддерживается.
Автор и редакторы
Автор: Влад Мержевич
Последнее изменение: 14.11.2018
Редакторы: Влад Мержевич
Поговорим о свойстве white-space | CSS-Tricks по-русски
Поговорим о свойстве white-space
В CSS есть такое полезное свойство, как white-space, которое остаётся без внимания у начинающих верстальщиков. Возможно, вы обходились без него довольно долго, но однажды узнав, что это такое, и как его использовать, вы поймёте как много вы потеряли.
В этой статье я постараюсь описать, в чём разница между различными значениями свойства и как они могут быть использованы.
Немного об HTML.
В HTML, всякий раз когда вы оставляете подряд несколько пробелов (табов или переводов строки), браузер, по умолчанию, будет выводить их как один единственный пробел. Такое поведение позволяет браузеру отделять и размещать элементы наиболее удобным для прочтения способом.
Если вы хотите чтобы все ваши пробелы и переводы строк отображались как в исходном HTML, то вам необходимо использовать тег pre, всё содержимое которого будет отображаться в соответствии с исходным кодом страницы.
Кроме того, можно воспользоваться неразрывным пробелом ( ), в случае, если вам необходимо, чтобы строки не «схлопывались». Также, в предыдущих версиях 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. Это свойство устанавливает, как отображать пробелы в тексте, а именно:
white-space: normal. Значение по умолчанию, текст ведёт себя как обычно.
white-space: nowrap. Текст идёт одной строкой, переносов не происходит, за исключением вручную расставленных, например, тегом <br>. Если обрамить текст тегом nobr (<nobr>текст</nobr>), то мы получим тот же эффект, что и через свойство css. Аналогично достигается в таблице путём дописки параметра nowrap в теге td. Так что всё на вкус и на цвет, а что использовать — решать вам.
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»>.
white-space: pre-wrap. Выводит текст с пробелами и переносами, но если строка слишком длинная, то происходит перенос. Не поддерживается IE7 и младше.
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.
Значение | Перенос текста | Пробелы |
---|---|---|
нормальный | Переносится | Не учитываются |
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. Для
Opera до версии 9.5 не поддерживает значение pre-line.Для
Safari до версии 3.0 и iOS не содержит значения pre-wrap и pre-line.
Firefox до версии 2.0 включительно не поддерживает значения pre-line и pre-wrap. Для
.
white-space |
Chrome Полная поддержка 1 |
Край Полная поддержка 12 |
Firefox Полная поддержка 1 |
IE Полная поддержка 5.5 |
Opera Полная поддержка 4 |
Safari Полная поддержка 1 |
WebView Android Полная поддержка 1 |
Chrome Android Полная поддержка 18 |
Firefox Android Полная поддержка 4 |
Опера Android Полная поддержка 10.1 |
Safari iOS Полная поддержка 1 |
Samsung Интернет Android Полная поддержка 1.0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
перерывов |
Хром Полная поддержка 76 |
Край Полная поддержка 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 Интернет Android Полная поддержка 12.0 |
nowrap |
Хром Полная поддержка 1 |
Край Полная поддержка 12 |
Firefox Полная поддержка 1 |
IE Полная поддержка 5.5 |
Опера Полная поддержка 4 |
Safari Полная поддержка 1 |
WebView Android Полная поддержка 1 |
Chrome Android Полная поддержка 18 |
Firefox Android Полная поддержка 4 |
Опера Android Полная поддержка 10.1 |
Safari iOS Полная поддержка 1 |
Samsung Интернет Android Полная поддержка 1.0 |
до |
Хром Полная поддержка 1 |
Край Полная поддержка 12 |
Firefox Полная поддержка 1 |
IE Полная поддержка 6 |
Опера Полная поддержка 4 |
Safari Полная поддержка 1 |
WebView Android Полная поддержка 37 |
Chrome Android Полная поддержка 18 |
Firefox Android Полная поддержка 4 |
Опера Android Полная поддержка 14 |
Safari iOS Полная поддержка 1 |
Samsung Интернет Android Полная поддержка 1.0 |
предварительная линия |
Хром Полная поддержка 1 |
Край Полная поддержка 12 |
Firefox Полная поддержка 3,5 |
IE Полная поддержка 8 |
Опера Полная поддержка 9.5 |
Safari Полная поддержка 3 |
WebView Android Полная поддержка 37 |
Chrome Android Полная поддержка 18 |
Firefox Android Полная поддержка 4 |
Опера Android Полная поддержка 14 |
Safari iOS Полная поддержка 1 |
Samsung Интернет Android Полная поддержка 1.0 |
Предварительная упаковка |
Хром Полная поддержка 1 |
Край Полная поддержка 12 |
Firefox Полная поддержка 3
|
IE Полная поддержка 8
|
Opera Полная поддержка 8 |
Safari Полная поддержка 3 |
WebView Android Полная поддержка 37 |
Chrome Android Полная поддержка 18 |
Firefox Android Полная поддержка 4 |
Опера Android Полная поддержка 14 |
Safari iOS Полная поддержка 1 |
Samsung Интернет Android Полная поддержка 1.0 |
Поддержка в SVG | Chrome Нет поддержки Нет |
Кромка Нет поддержки 12–79 |
Firefox Полная поддержка 36 |
IE Полная поддержка 10 |
Опера Нет поддержки Нет |
Safari Нет поддержки Нет |
WebView Android Нет поддержки Нет |
Chrome Android Нет поддержки Нет |
Firefox Android Полная поддержка 36 |
Опера Android Нет поддержки Нет |
Safari iOS Нет поддержки Нет |
Samsung Internet Android Нет поддержки Нет |
Поддержка на |
Chrome Полная поддержка 1 |
Край Полная поддержка 12 |
Firefox Полная поддержка 36 |
IE Полная поддержка 5.5 |
Опера Полная поддержка 4 |
Safari Полная поддержка 1 |
WebView Android Полная поддержка 37 |
Chrome Android Полная поддержка 18 |
Firefox Android Полная поддержка 36 |
Опера Android Полная поддержка 14 |
Safari iOS Полная поддержка 1 |
Samsung Интернет Android Полная поддержка 1.0 |
.
Поговорим о своемстве white-space | CSS-Tricks по-русски
Поговорим о своемстве white-space
В CSS есть такое полезное свойство, как white-space, которое остаётся без внимания начинающих верстальщиков. Возможно, вы обошлись без него довольно долго, но однажды узнав, что это такое, и как его использовать, вы поймёте как много вы потеряли.
В статье я постараюсь описать, в чём разница между различными значениями свойств и как они могут быть использованы.
Немного об HTML.
В HTML, всякий раз, когда вы оставляете несколько подряд (табов или переводов строки), браузер, по умолчанию, будет выводить их как один единственный пробел. Такое поведение позволяет браузеру отделять и разместить элементы наиболее популярным способом.
Если вы хотите, чтобы все ваши пробелы и переводы отображались как в исходном HTML, то вам необходимо использовать тег pre, всё содержимое которого будет соответствовать в соответствии с исходным кодом страницы.
Кроме того, можно использовать неразрывным пробелом (& nbsp;), в случае, если вам необходимо, чтобы строки не «схлопывались». Также, в предыдущих версиях HTML был тег nobr для таких целей. Сейчас этот тег не рекомендуется к использованию.
Свойство white-space - это шаг к семантически чистому HTML. Вы можете настроить обработку браузером пробелов, используя CSS.
Определение и возможные значения.
Свойство white-space предназначено для поведения при обработке множественных пробелов и переводов строк.Конечно, обрабатываемая часть документа ограничивается CSS-селектором.
Ниже приведены возможные значения свойств с описанием каждого из них:
.
пробел: нормальный
Значение по умолчанию. Если оно установлено явно, результатом будет обычный вывод, без использования тега pre. Как и в случае с большинством CSS-свойств, только одна причина использовать это значение, когда вы установили это свойство где-либо выше по иерархии свойств или элементов, для того, чтобы вернуть обычное поведение элемента.
Повторяющиеся пробелы и разрывы строк игнорируются, для того, чтобы наиболее естественным образом отображать текст.
белое пространство: nowrap
Это обычно используемое значение, поскольку оно делает выводимый текст точно таким же, как и в случае использования с нормальным значением, за исключением того, что подавляется разрывы строк, даже в тех случаях, когда выводимый текст получается шире чем контейнер для вывода.
Элемент, для которого значение свойства установлено как nowrap, не позволяет тексту и другим inline-элементам переносится естественным образом на новую строку.Вместо этого он продолжает вывод за своими границами, до тех пор, пока текст не закончится, оставляя его на одной линии. Это значение не имеет никакого эффекта на пробелы между словами, как обычно «схлопываются» в один, как обычно.
Повторяющиеся пробелы игнорируются, переводы строк не используются, даже если текст не помещается в строке.
белое пространство: до
Это значение работает именно так, как ожидается: точно также, как и содержимое тега pre.Все пробелы и переводы строк выводятся точно также как и в исходном HTML. Если какая-нибудь строка шире, чем её родитель, то она не будет разрываться, а будет выводится как одна строка.
Повторяющиеся пробелы и переводы строк выводятся так же как и в исходной разметке, естественные переводы строк не работают.
белое пространство: предварительная строка
Это свойство работает также как и нормально, за исключением одного момента: переводы строк в исходной разметке являются значимыми.Таким образом, если в разметке между словами несколько пробелом, они будут проигнорированы как, однако, если в разметке обычно перевод строки, при выводе, текст также будет перенесён на новую строку. Это значение не поддерживается в Internet Explorer до 7-ой версии, FireFox до 3-ей версии и Opera до версии 9.2.
Повторяющиеся пробелы игнорируются, переводы строк обрабатываюся.
белое пространство: предварительная упаковка
Это значение определяет такое же поведение как и значение pre, за тем исключением что строка переносится в соответствии с границами родительского элемента.Таким образом, текст будет переносится на новую строку, как это было бы при значении нормального, а также считываться множественные пробелы и переводы строк исходного HTML. Это свойство не поддерживается в Internet Explorer до версии 7, а также FireFox до версии 3.
Обрабатываюся повторяющиеся пробелы и явные переводы строк, а также естественные переводы строк.
Варианты использования
. Наиболее частый случай использования свойств белого пространства - это применение его к переносной ссылке на новую строку.
На показанном скриншоте, ссылка «Подробнее» кавычка (») перенесла на новую строку, как ей не хватило места. Этого можно избежать применив к ссылке значение nowrap. В этом случае ссылка будет перенесена на новую целиком, как неразрывный элемент. Обратите внимание, что свойство white-space было применено только к содержимому элемента. Поэтому ссылка и была перенесена на новую целиком. Текст внутри нее - неразрывен.
Заблуждения
У новичков часто возникает недопонимание при использовании white-space: nowrap, если они применяют его к inline-elementу и ожидают, что он не будет переносится на новую строку.Стоит запомнить, что используются свойства только к встроенным элементам, которые находятся внутри элемента, к которому его применили, а также не имеют никакого эффекта на блочные элементы и отступы между ними.
.
Свойство white-space - разрывы строк длинного текста, пробелы между словами
Свойство white-space устанавливает как переносить текст
на новую строку, а также как отображать пробелы между словами и переносы
строк (места, где был ячейкой Введите при наборе кода).
Синтаксис
селектор {
белое пространство: nowrap | предварительно | предварительная линия | предварительная упаковка | обычный;
}
Значения
Значение | Описание |
---|---|
nowrap |
Запрещает тексту переносится на другую строку, даже если он не помещается в ширину контейнера (в этом случае текст просто вылезет за его границы).Однако, добавление тега br заставит текст перенестись на новую строку. |
до |
Текст показывается так, как был набран в блокноте при верстке сайта: со всеми пробелами и enter-ами (если в коде набрано несколько пробелов - на этом тоже будет несколько). При этом браузер не будет переносить текст на новую строку, если он не помещается в контейнер - текст просто вылезет за его границы. Аналог тега pre, но в отличие от него не меняет |
предварительная упаковка |
То же самое, что и предварительное, отличие в том, если текст слишком длинный и не влазит в контейнер - браузер перенес его на другую строку. |
предварительная линия |
Браузер учитывает только Enter-ы в HTML коде и игнорирует все остальное (несколько один браузер сам расставляет разрывы строк). |
нормальный |
Стандартное поведение: браузер сам расставляет разрывы строки так, чтобы слова поместились в контейнер.Несколько пробелов в коде будут выглядеть как один на экране. |
Значение по умолчанию: нормальный .
Пример. Значение nowrap
В данном тексте поместится в контейнер и вылезет за его границы,
так как задано значение nowrap :
#elem {
ширина: 200 пикселей;
белое пространство: nowrap;
граница: сплошной красный 1px;
}
:
Пример.Значение nowrap и тег br
Если добавить тег br - текст перенесен на новую строку
(именно в том месте, где стоит br):
amet, Concectetur adipiscing elitorire.
#elem {
ширина: 200 пикселей;
белое пространство: nowrap;
граница: сплошной красный 1px;
}
:
Пример. Значение до
В данном примере показан так, как был набран в редакторе HTML кода
(со всеми отступами клавишей Tab, с Enter и так далее):
dolor sit amet, conctetur adipiscing elitorire.
#elem {
ширина: 200 пикселей;
белое пространство: предварительно;
граница: сплошной красный 1px;
}
:
Пример. Значение предварительной упаковки
А сейчас текст показывается так, как был набран в редакторе HTML кода,
однако вылезающие части переносятся на новую строку:
dolor sit amet, conctetur adipiscing elitorire.
#elem {
ширина: 200 пикселей;
белое пространство: предварительная упаковка;
граница: сплошной красный 1px;
}
:
Смотрите также
-
свойства word-break
и overflow-wrap,
, которые позволяют перенести буквы длинного слова на новую строку -
свойство tab-size,
устанавливает размер отступа, созданного клавишей Tab -
свойство дефисов,
включает переносы слов по слогам -
свойство overflow,
которое обрезает вылезающие за границу блока части -
тег pre,
показывает который текст так, как он был набран в редакторе HTML кода
.
Добавить комментарий