The text-overflow
CSS property determines how overflowed content that is not displayed is signaled to users. It can be clipped, display an ellipsis ('…
', U+2026 Horizontal Ellipsis
), or display a custom string.
The text-overflow
property doesn't force an overflow to occur. To make text overflow its container you have to set other CSS properties: overflow
and white-space
. For example:
overflow: hidden; white-space: nowrap;
The text-overflow
property only affects content that is overflowing a block container element in its inline progression direction (not text overflowing at the bottom of a box, for example).
The text-overflow
property may be specified using one or two values. If one value is given, it specifies overflow behavior for the end of the line (the right end for left-to-right text, the left end for right-to-left text). If two values are given, the first specifies overflow behavior for the left end of the line, and the second specifies it for the right end of the line.
Each value is specified as one of:
clip
, ellipsis
, fade
fade()
, which is passed a <length>
or a <percentage>
to control the fade distance<string>
.clip
text-overflow
as an empty string, if that is supported in your target browsers: text-overflow: '';
.ellipsis
'…'
, U+2026 Horizontal Ellipsis
) to represent clipped text. The ellipsis is displayed inside the content area, decreasing the amount of text displayed. If there is not enough space to display the ellipsis, it is clipped.<string>
<string>
to be used to represent clipped text. The string is displayed inside the content area, shortening the size of the displayed text. If there is not enough space to display the string itself, it is clipped.fade
fade( <length> | <percentage> )
<percentage>
is resolved against the width of the line box. Values lower than 0
are clipped to 0
. Values greater than the width of the line box are clipped to the width of the line box.[ clip | ellipsis | <string> ]{1,2}
p { width: 200px; border: 1px solid; padding: 2px 5px; /* BOTH of the following are required for text-overflow */ white-space: nowrap; overflow: hidden; } .overflow-visible { white-space: initial; } .overflow-clip { text-overflow: clip; } .overflow-ellipsis { text-overflow: ellipsis; } .overflow-string { /* Not supported in most browsers, see the 'Browser compatibility' section below */ text-overflow: " [..]"; }
<p class="overflow-visible">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> <p class="overflow-clip">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> <p class="overflow-ellipsis">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> <p class="overflow-string">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
CSS value | direction: ltr | direction: rtl | ||
---|---|---|---|---|
Expected Result | Live result | Expected Result | Live result | |
visible overflow | 1234567890 | 1234567890 | 0987654321 | 1234567890 |
text-overflow: clip | 123456 | 1234567890 | ||
text-overflow: '' | 12345 | 123456 | 54321 | 1234567890 |
text-overflow: ellipsis | 1234… | 1234567890 | …4321 | 1234567890 |
text-overflow: '.' | 1234. | 1234567890 | .4321 | 1234567890 |
text-overflow: clip clip | 123456 | 1234567890 | 654321 | 1234567890 |
text-overflow: clip ellipsis | 1234… | 1234567890 | 6543… | 1234567890 |
text-overflow: clip '.' | 1234. | 1234567890 | 6543. | 1234567890 |
text-overflow: ellipsis clip | …3456 | 1234567890 | …4321 | 1234567890 |
text-overflow: ellipsis ellipsis | …34… | 1234567890 | …43… | 1234567890 |
text-overflow: ellipsis '.' | …34. | 1234567890 | …43. | 1234567890 |
text-overflow: ',' clip | ,3456 | 1234567890 | ,4321 | 1234567890 |
text-overflow: ',' ellipsis | ,34… | 1234567890 | ,43… | 1234567890 |
text-overflow: ',' '.' | ,34. | 1234567890 | ,53. | 1234567890 |
Specification | Status | Comment |
---|---|---|
CSS Basic User Interface Module Level 4 The definition of 'text-overflow' in that specification. | Working Draft | Added the values <string> and fade and the fade() function |
CSS Basic User Interface Module Level 3 The definition of 'text-overflow' in that specification. | Recommendation | Initial definition |
A previous version of this interface reached the Candidate Recommendation status. As some not-listed-at-risk features needed to be removed, the spec was demoted to the Working Draft level, explaining why browsers implemented this property unprefixed, though not at the CR state.
Initial value | clip |
---|---|
Applies to | block container elements |
Inherited | no |
Media | visual |
Computed value | as specified |
Animation type | discrete |
Canonical order | the unique non-ambiguous order defined by the formal grammar |
Desktop | ||||||
---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
Basic support | 1 | 12 | 7
|
6
|
11
|
1.3 |
Two-value syntax | No | No | 9 | No | No | No |
<string> | No | No | 9 | No | No | No |
fade
|
No | No | No | No | No | No |
fade()
|
No | No | No | No | No | No |
Mobile | |||||||
---|---|---|---|---|---|---|---|
Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
Basic support | Yes | ? | Yes | 7
|
Yes | Yes | ? |
Two-value syntax | No | ? | No | 9 | No | No | No |
<string> | No | ? | No | 9 | No | No | No |
fade
|
No | ? | No | No | No | No | No |
fade()
|
No | ? | No | No | No | No | No |
overflow
, white-space
overflow-wrap
, word-break
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/text-overflow