overflow-wrap
The overflow-wrap
CSS property applies to inline elements, setting whether the browser should insert line breaks within an otherwise unbreakable string to prevent text from overflowing its line box.
Note: In contrast to word-break
, overflow-wrap
will only create a break if an entire word cannot be placed on its own line without overflowing.
The property was originally a nonstandard and unprefixed Microsoft extension called word-wrap
, and was implemented by most browsers with the same name. It has since been renamed to overflow-wrap
, with word-wrap
being an alias.
Syntax
/* Keyword values */
overflow-wrap: normal;
overflow-wrap: break-word;
overflow-wrap: anywhere;
/* Global values */
overflow-wrap: inherit;
overflow-wrap: initial;
overflow-wrap: revert;
overflow-wrap: unset;
The overflow-wrap
property is specified as a single keyword chosen from the list of values below.
Values
normal
-
Lines may only break at normal word break points (such as a space between two words).
anywhere
-
To prevent overflow, an otherwise unbreakable string of characters — like a long word or URL — may be broken at any point if there are no otherwise-acceptable break points in the line. No hyphenation character is inserted at the break point. Soft wrap opportunities introduced by the word break are considered when calculating min-content intrinsic sizes.
break-word
-
The same as the
anywhere
value, with normally unbreakable words allowed to be broken at arbitrary points if there are no otherwise acceptable break points in the line, but soft wrap opportunities introduced by the word break are NOT considered when calculating min-content intrinsic sizes.
Formal definition
Initial value | normal |
---|---|
Applies to | non-replaced inline elements |
Inherited | yes |
Computed value | as specified |
Animation type | discrete |
Formal syntax
Examples
Comparing overflow-wrap, word-break, and hyphens
This example compares the results of overflow-wrap
, word-break
, and hyphens
when breaking up a long word.
HTML
<p>They say the fishing is excellent at
Lake <em class="normal">Chargoggagoggmanchauggagoggchaubunagungamaugg</em>,
though I've never been there myself. (<code>normal</code>)</p>
<p>They say the fishing is excellent at
Lake <em class="ow-anywhere">Chargoggagoggmanchauggagoggchaubunagungamaugg</em>,
though I've never been there myself. (<code>overflow-wrap: anywhere</code>)</p>
<p>They say the fishing is excellent at
Lake <em class="ow-break-word">Chargoggagoggmanchauggagoggchaubunagungamaugg</em>,
though I've never been there myself. (<code>overflow-wrap: break-word</code>)</p>
<p>They say the fishing is excellent at
Lake <em class="word-break">Chargoggagoggmanchauggagoggchaubunagungamaugg</em>,
though I've never been there myself. (<code>word-break</code>)</p>
<p>They say the fishing is excellent at
Lake <em class="hyphens">Chargoggagoggmanchauggagoggchaubunagungamaugg</em>,
though I've never been there myself. (<code>hyphens</code>, without <code>lang</code> attribute)</p>
<p lang="en">They say the fishing is excellent at
Lake <em class="hyphens">Chargoggagoggmanchauggagoggchaubunagungamaugg</em>,
though I've never been there myself. (<code>hyphens</code>, English rules)</p>
<p class="hyphens" lang="de">They say the fishing is excellent at
Lake <em class="hyphens">Chargoggagoggmanchauggagoggchaubunagungamaugg</em>,
though I've never been there myself. (<code>hyphens</code>, German rules)</p>
CSS
p {
width: 13em;
margin: 2px;
background: gold;
}
.ow-anywhere {
overflow-wrap: anywhere;
}
.ow-break-word {
overflow-wrap: break-word;
}
.word-break {
word-break: break-all;
}
.hyphens {
hyphens: auto;
}
Result
Specifications
Specification |
---|
CSS Text Module Level 3 # overflow-wrap-property |
Browser compatibility
Report problems with this compatibility data on GitHubdesktop | mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
overflow-wrap | ChromeFull support23 | EdgeFull support18 | FirefoxFull support49 | Internet ExplorerFull support5.5 | OperaFull support12.1 | SafariFull support7 | WebView AndroidFull support4.4 | Chrome AndroidFull support25 | Firefox for AndroidFull support49 | Opera AndroidFull support12.1 | Safari on iOSFull support7 | Samsung InternetFull support1.5 |
anywhere | ChromeFull support80 | EdgeFull support80 | FirefoxFull support65 | Internet ExplorerNo supportNo | OperaFull support67 | SafariNo supportNo | WebView AndroidFull support80 | Chrome AndroidFull support80 | Firefox for AndroidFull support65 | Opera AndroidNo supportNo | Safari on iOSNo supportNo | Samsung InternetFull support13.0 |
break-word | ChromeFull support1 | EdgeFull support12 | FirefoxFull support3.5 | Internet ExplorerFull support5.5 | OperaFull support10.5 | SafariFull support1 | WebView AndroidFull support37 | Chrome AndroidFull support18 | Firefox for AndroidFull support4 | Opera AndroidFull support11 | Safari on iOSFull support1 | Samsung InternetFull support1.0 |
Legend
- Full support
- Full support
- No support
- No support
- Uses a non-standard name.