CSS - Hyphens
The hyphens
Property
The hyphens
CSS property is used to control how words should be hyphenated when text wraps across multiple lines. It tells the browser if and how to hyphenate words when line-wrapping text content. The hyphens
property accepts three possible values: none
, manual
, and auto
.
The default value of the hyphens
property is manual
, which means that words will only be broken at line breaks where there are characters inside the word that suggest line break opportunities, such as hyphens (-
), en dashes (–
), em dashes (—
), or soft hyphens (­
). If the hyphens
property is set to none
, words are not broken at line breaks, even if characters inside the word suggest line break opportunities. If the hyphens
property is set to auto
, the browser can automatically break words at appropriate hyphenation points, following its own rules.
The hyphens
property is inherited, meaning that if it is set on a parent element, it will apply to all child elements as well unless overridden by a more specific rule.
The none
Value
When the hyphens
property is set to none, words are not broken at line breaks even if characters inside the word suggest line break opportunities. This means that if a word is too long to fit on the current line, it will overflow or be moved to the next line instead of being hyphenated.
Example: Using none
value
p {
hyphens: none;
}
In this code snippet, you set <p>
elements not to allow any hyphenation even if there are characters inside them suggesting otherwise.
The 'manual' Value
When you use this value for 'hyphens', words will only be broken at places where there are characters suggesting possible breaks like regular or soft hyphons (default setting).
Example: Using manual
value
p {
hyphans: manual;
}
This code sets <p>
elements so they only allow manual breaking based on special character placement within them.
The 'auto' Value
When you use this value for 'hypen', browsers can automatically find appropriate places within each individual instance.
Controlling Hyphenation
In addition to the hyphens
property, CSS provides other properties that allow you to control how hyphenation behaves in your web pages.
The hyphenate-character
property lets you specify the character used when hyphenating words. By default, the hyphen character (-
) is used, but you can change it to any other character if desired.
Example: Hyphenate Character
p {
hyphens: auto;
hyphenate-character: '=';
}
The hyphenate-limit-chars
property allows you to specify the minimum number of characters that must be present before and after a hyphenation point. It takes one to three integer values, representing the minimum number of characters before the hyphenation point, after the hyphenation point, and the minimum word length.
Example: Hyphenate Limit Characters
p {
hyphens: auto;
hyphenate-limit-chars: 5 3 8;
}
The hyphenate-limit-lines
property specifies how many consecutive lines can be hyphenated. It takes an integer value.
Example: Hyphenate Limit Lines
p {
hyphens: auto;
hyphernate-limit-lines: 2;
}
The hyphanate-limit-zone
defines how much unfilled space (called "hyphenation zone") can be left at end of a line before hyphenation is triggered. It takes a length value.
Example: Hyphenate Limit Zone
p {
hyphens: auto;
hyphenate-limit-zone: 8em;
}
This code sets the maximum hyphenation zone at the end of the line to 8em for <p>
elements.