CSS-свойство `hyphens`
Базовый уровень Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с сентября 2023 года.
hyphens — это свойство CSS, которое определяет, как следует переносить слова при переносе текста на несколько строк.
Попробуйте
hyphens: none;
hyphens: manual;
hyphens: auto;
<section id="default-example"> <p id="example-element">An extraordinarily long English word!</p> </section>
#example-element {
border: 2px dashed #999999;
font-size: 1.5rem;
text-align: left;
width: 7rem;
}
Пример текста «Чрезвычайно длинное английское слово!» содержит невидимый символ ­ (мягкий дефис): An extra­ordinarily long English word!. Этот символ указывает возможное место вставки дефиса, когда указано значение hyphens: manual;.
Синтаксис
/* Keyword values */ hyphens: none; hyphens: manual; hyphens: auto; /* Global values */ hyphens: inherit; hyphens: initial; hyphens: revert; hyphens: revert-layer; hyphens: unset;
Значения
Это свойство задаётся одним из следующих ключевых слов:
-
none - Слова не разделяются при переносе строки, даже если символы внутри слов указывают возможные места переноса. Строки переносятся только по пробельным символам.
-
manual - Значение по умолчанию. Слова переносятся только в тех местах, где символы внутри слова указывают возможность переноса строки. Подробнее см. раздел Указание возможных мест переноса строки ниже.
-
auto - Браузер может автоматически переносить слова в подходящих местах переноса, руководствуясь выбранными им правилами. Однако при наличии указанные места возможного переноса строки (см. раздел Указание возможных мест переноса строки ниже) имеют приоритет над автоматически выбранными местами переноса.
Описание
Свойство hyphens позволяет определить, как следует переносить слова при переносе текста на несколько строк. Оно может полностью запретить перенос слов, разрешить перенос только в заданных вручную местах внутри текста или позволить браузеру автоматически вставлять дефисы там, где это уместно.
Правила переноса зависят от языка. В HTML язык определяется атрибутом lang. Браузеры выполняют перенос слов только при наличии этого атрибута и соответствующего словаря переносов. Поведение настройки auto зависит от того, правильно ли указан язык для выбора соответствующих правил переноса.
В XML необходимо использовать атрибут xml:lang. Спецификация не определяет правила переноса слов в содержимом XML, поэтому точное поведение при переносе может различаться в разных браузерах.
Свойство hyphenate-character позволяет указать символ переноса, который будет использоваться в конце строки вместо символа переноса, заданного по умолчанию для языка.
При применении word-break: break-all дефисы не отображаются, даже если слово переносится в месте переноса. При применении text-wrap-mode: nowrap перенос строк не выполняется, поэтому дефисы не появятся.
Указание возможных мест переноса строки
Для ручного указания возможных мест переноса строки внутри текста используются два символа Unicode:
- U+2010 (HYPHEN)
- Символ «жёсткого» дефиса указывает видимое место возможного переноса строки. Даже если строка фактически не переносится в этом месте, дефис всё равно отображается.
- U+00AD (SHY)
- Невидимый «мягкий» дефис. Этот символ не отображается; вместо этого он отмечает место, в котором браузер должен перенести слово, если это необходимо. В HTML для вставки мягкого дефиса используйте
­.
Примечание: Если элемент HTML <wbr> приводит к переносу строки, дефис не добавляется.
Формальное определение
| Исходное значение | manual |
|---|---|
| Применяется к | всем элементам |
| Наследуется | да |
| Вычисленное значение | как задано |
| Тип анимации | дискретный |
Формальный синтаксис
hyphens =
none |
manual |
auto
Примеры
Простой пример
В этом примере показаны три значения свойства hyphens.
HTML
Мы добавим три элемента <dd> с одинаковым текстом, но с тремя разными классами.
<dl>
<dt><code>none</code>: no hyphen; overflow if needed</dt>
<dd lang="en" class="none">An extreme­ly long English word</dd>
<dt>
<code>manual</code>: hyphen only at &hyphen; or &shy; (if needed)
</dt>
<dd lang="en" class="manual">An extreme­ly long English word</dd>
<dt><code>auto</code>: hyphens where the algorithm decides (if needed)</dt>
<dd lang="en" class="auto">An extreme­ly long English word</dd>
</dl>
CSS
Для каждого из трёх классов задано своё значение hyphens.
dd {
width: 55px;
border: 1px solid black;
}
dd.none {
hyphens: none;
}
dd.manual {
hyphens: manual;
}
dd.auto {
hyphens: auto;
}
Результат
Спецификации
| Спецификация |
|---|
| CSS Text Module Level 3 # propdef-hyphens |
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari для iOS | Samsung Internet | WebView для Android | WebView для iOS | |
hyphens |
55
13
|
79
79
12–79Работает только в том случае, если указанный язык совпадает с языком базовой операционной системы. |
43
6
|
42
15
|
17
5.1
|
55
18
|
43
6
|
42
14
|
17
4.2
|
6.0
1.0
|
55
4.4
|
17
4.2
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
auto |
88
55–88Поддерживается только в macOS. |
88
79–88Поддерживается только в macOS. |
6 |
74
42–74Поддерживается только в macOS. |
5.1 |
55 |
6 |
42 |
4.2 |
6.0 |
55 |
4.2 |
language_afrikaans |
112 |
112 |
8 |
98 |
Нет |
112 |
8 |
75 |
Нет |
23.0 |
112 |
Нет |
language_albanian |
112 |
112 |
Нет |
98 |
Нет |
112 |
Нет |
75 |
Нет |
23.0 |
112 |
Нет |
language_amharic |
112 |
112 |
Нет |
98 |
Нет |
112 |
Нет |
75 |
Нет |
23.0 |
112 |
Нет |
language_armenian |
87 |
87 |
Нет |
73 |
Нет |
87 |
Нет |
62 |
Нет |
14.0 |
87 |
Нет |
language_assamese |
87 |
87 |
Нет |
73 |
Нет |
87 |
Нет |
62 |
Нет |
14.0 |
87 |
Нет |
language_basque |
87 |
87 |
Нет |
73 |
Нет |
87 |
Нет |
62 |
Нет |
14.0 |
87 |
Нет |
language_belarusian |
87 |
87 |
Нет |
73 |
Нет |
87 |
Нет |
62 |
Нет |
14.0 |
87 |
Нет |
language_bengali |
87 |
87 |
Нет |
73 |
Нет |
87 |
Нет |
62 |
Нет |
14.0 |
87 |
Нет |
language_bosnian |
Нет |
Нет |
8 |
Нет |
Нет |
Нет |
8 |
Нет |
Нет |
Нет |
Нет |
Нет |
language_bulgarian |
87 |
87 |
8 |
73 |
Нет |
87 |
8 |
62 |
Нет |
14.0 |
87 |
Нет |
language_catalan |
Нет |
Нет |
8 |
Нет |
5.1 |
Нет |
8 |
Нет |
5 |
Нет |
Нет |
5 |
language_croatian |
87 |
87 |
8 |
73 |
9.1 |
87 |
8 |
62 |
9.3 |
14.0 |
87 |
9.3 |
language_cyrillic_mongolian |
87 |
87 |
Нет |
73 |
Нет |
87 |
Нет |
62 |
Нет |
14.0 |
87 |
Нет |
language_czech |
112 |
112 |
130 |
98 |
9.1 |
112 |
130 |
75 |
9.3 |
23.0 |
112 |
9.3 |
language_danish |
87 |
87 |
8 |
73 |
5.1 |
87 |
8 |
62 |
5 |
14.0 |
87 |
5 |
language_dutch |
112 |
112 |
8 |
98 |
5.1 |
112 |
8 |
75 |
5 |
23.0 |
112 |
5 |
language_english |
55 |
12 |
6Для английского языка Firefox использует словарь en-US |
44 |
5.1Для английского языка Safari использует разные словари en-GB и en-US. |
55 |
6Для английского языка Firefox для Android использует словарь en-US |
43 |
5Для английского языка Safari на iOS использует разные словари en-GB и en-US. |
6.0 |
55 |
5Для английского языка WebView на iOS использует разные словари en-GB и en-US. |
language_esperanto |
Нет |
Нет |
8 |
Нет |
Нет |
Нет |
8 |
Нет |
Нет |
Нет |
Нет |
Нет |
language_estonian |
87 |
87 |
8 |
73 |
Нет |
87 |
8 |
62 |
Нет |
14.0 |
87 |
Нет |
language_ethiopic_script_mul |
112 |
112 |
Нет |
98 |
Нет |
112 |
Нет |
75 |
Нет |
23.0 |
112 |
Нет |
language_ethiopic_script_und |
87 |
87 |
Нет |
73 |
Нет |
87 |
Нет |
62 |
Нет |
14.0 |
87 |
Нет |
language_finnish |
Нет |
Нет |
8 |
Нет |
9.1 |
Нет |
8 |
Нет |
9.3 |
Нет |
Нет |
9.3 |
language_french |
87 |
87 |
8 |
73 |
5.1 |
87 |
8 |
62 |
5 |
14.0 |
87 |
5 |
language_galician |
112 |
112 |
9 |
98 |
Нет |
112 |
9 |
75 |
Нет |
23.0 |
112 |
Нет |
language_georgian |
112 |
112 |
Нет |
98 |
Нет |
112 |
Нет |
75 |
Нет |
23.0 |
112 |
Нет |
language_german_reformed_orthography |
87 |
87 |
8 |
73 |
5.1 |
87 |
8 |
62 |
5 |
14.0 |
87 |
5 |
language_german_swiss_orthography |
87 |
87 |
8 |
73 |
Нет |
87 |
8 |
62 |
Нет |
14.0 |
87 |
Нет |
language_german_traditional_orthography |
87 |
87 |
8 |
73 |
Нет |
87 |
8 |
62 |
Нет |
14.0 |
87 |
Нет |
language_gujarati |
87 |
87 |
Нет |
73 |
Нет |
87 |
Нет |
62 |
Нет |
14.0 |
87 |
Нет |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
language_hindi |
87 |
87 |
Нет |
73 |
Нет |
87 |
Нет |
62 |
Нет |
14.0 |
87 |
Нет |
language_hungarian |
87 |
87 |
9 |
73 |
9.1 |
87 |
9 |
62 |
9.3 |
14.0 |
87 |
9.3 |
language_icelandic |
Нет |
Нет |
8 |
Нет |
Нет |
Нет |
8 |
Нет |
Нет |
Нет |
Нет |
Нет |
language_interlingua |
Нет |
Нет |
8 |
Нет |
Нет |
Нет |
8 |
Нет |
Нет |
Нет |
Нет |
Нет |
language_irish |
87 |
87 |
Нет |
73 |
Нет |
87 |
Нет |
62 |
Нет |
14.0 |
87 |
Нет |
language_italian |
112 |
112 |
9 |
98 |
5.1 |
112 |
9 |
75 |
5 |
23.0 |
112 |
5 |
language_kannada |
87 |
87 |
Нет |
73 |
Нет |
87 |
Нет |
62 |
Нет |
14.0 |
87 |
Нет |
language_kurmanji |
Нет |
Нет |
8 |
Нет |
Нет |
Нет |
8 |
Нет |
Нет |
Нет |
Нет |
Нет |
language_latin |
87 |
87 |
8 |
73 |
Нет |
87 |
8 |
62 |
Нет |
14.0 |
87 |
Нет |
language_latvian |
112 |
112 |
Нет |
98 |
Нет |
112 |
Нет |
75 |
Нет |
23.0 |
112 |
Нет |
language_lithuanian |
112 |
112 |
8 |
98 |
Нет |
112 |
8 |
75 |
Нет |
23.0 |
112 |
Нет |
language_malayalam |
87 |
87 |
Нет |
73 |
Нет |
87 |
Нет |
62 |
Нет |
14.0 |
87 |
Нет |
language_marathi |
87 |
87 |
Нет |
73 |
Нет |
87 |
Нет |
62 |
Нет |
14.0 |
87 |
Нет |
language_modern_greek |
112 |
112 |
Нет |
98 |
Нет |
112 |
Нет |
75 |
Нет |
23.0 |
112 |
Нет |
language_mongolian |
Нет |
Нет |
8 |
Нет |
Нет |
Нет |
8 |
Нет |
Нет |
Нет |
Нет |
Нет |
language_norwegian_nn |
87 |
87 |
8 |
73 |
Нет |
87 |
8 |
62 |
5 |
14.0 |
87 |
5 |
language_norwegian_no |
87 |
87 |
8 |
73 |
5.1 |
87 |
8 |
62 |
5 |
14.0 |
87 |
5 |
language_old_slavonic |
87 |
87 |
Нет |
73 |
Нет |
87 |
Нет |
62 |
Нет |
14.0 |
87 |
Нет |
language_oriya |
87 |
87 |
Нет |
73 |
Нет |
87 |
Нет |
62 |
Нет |
14.0 |
87 |
Нет |
language_polish |
Нет |
Нет |
31 |
Нет |
9.1 |
Нет |
31 |
Нет |
9.3 |
Нет |
Нет |
9.3 |
language_portuguese |
87 |
87 |
8 |
73 |
9.1 |
87 |
8 |
62 |
9.3 |
14.0 |
87 |
9.3 |
language_punjabi |
87 |
87 |
Нет |
73 |
Нет |
87 |
Нет |
62 |
Нет |
14.0 |
87 |
Нет |
language_russian |
112 |
112 |
8 |
98 |
5.1 |
112 |
8 |
75 |
5 |
23.0 |
112 |
5 |
language_slovak |
112 |
112 |
130 |
98 |
Нет |
112 |
130 |
75 |
Нет |
23.0 |
112 |
Нет |
language_slovenian |
87 |
87 |
8 |
73 |
Нет |
87 |
8 |
62 |
Нет |
14.0 |
87 |
Нет |
language_spanish |
87 |
87 |
8 |
73 |
5.1 |
87 |
8 |
62 |
5 |
14.0 |
87 |
5 |
language_swedish |
112 |
112 |
8 |
98 |
5.1 |
112 |
8 |
75 |
5 |
23.0 |
112 |
5 |
language_tamil |
87 |
87 |
Нет |
73 |
Нет |
87 |
Нет |
62 |
Нет |
14.0 |
87 |
Нет |
language_telugu |
87 |
87 |
Нет |
73 |
Нет |
87 |
Нет |
62 |
Нет |
14.0 |
87 |
Нет |
language_turkish |
Нет |
Нет |
9 |
Нет |
5.1 |
Нет |
9 |
Нет |
5 |
Нет |
Нет |
5 |
language_turkmen |
87 |
87 |
Нет |
73 |
Нет |
87 |
Нет |
62 |
Нет |
14.0 |
87 |
Нет |
language_ukrainian |
112 |
112 |
9 |
98 |
9.1 |
112 |
9 |
75 |
9.3 |
23.0 |
112 |
9.3 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
language_upper_sorbian |
Нет |
Нет |
8 |
Нет |
Нет |
Нет |
8 |
Нет |
Нет |
Нет |
Нет |
Нет |
language_welsh |
87 |
87 |
8 |
73 |
Нет |
87 |
8 |
62 |
Нет |
14.0 |
87 |
Нет |
manual |
88
55–88Поддерживается только в macOS. |
88
79–88Поддерживается только в macOS. |
6 |
74
42–74Поддерживается только в macOS. |
5.1 |
55 |
6 |
42 |
4.2 |
6.0 |
55 |
4.2 |
none |
88
55–88Поддерживается только в macOS. |
88
79–88Поддерживается только в macOS. |
6 |
74
42–74Поддерживается только в macOS. |
5.1 |
55 |
6 |
42 |
4.2 |
6.0 |
55 |
4.2 |
См. также
content-
overflow-wrap(ранееword-wrap) word-break- Руководство по переносу и разрыву текста
- Модуль CSS Text
© 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/hyphens