Spec-Zone.ru › CSS

CSS-свойство `hyphens`

Базовый уровень Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с сентября 2023 года.

hyphens — это свойство CSS, которое определяет, как следует переносить слова при переносе текста на несколько строк.

Попробуйте

hyphens: none;
hyphens: manual;
hyphens: auto;
<section id="default-example">
  <p id="example-element">An extra­ordinarily long English word!</p>
</section>
#example-element {
  border: 2px dashed #999999;
  font-size: 1.5rem;
  text-align: left;
  width: 7rem;
}

Пример текста «Чрезвычайно длинное английское слово!» содержит невидимый символ &shy; (мягкий дефис): An extra&shy;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 для вставки мягкого дефиса используйте &shy;.

Примечание: Если элемент 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&shy;ly long English word</dd>
  <dt>
    <code>manual</code>: hyphen only at &amp;hyphen; or &amp;shy; (if needed)
  </dt>
  <dd lang="en" class="manual">An extreme&shy;ly long English word</dd>
  <dt><code>auto</code>: hyphens where the algorithm decides (if needed)</dt>
  <dd lang="en" class="auto">An extreme&shy;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

Spec-Zone.ru

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