Handling text overflow with ellipsis using css text-overflow
Jul 10, 2025 pm 01:10 PMTo show an ellipsis with CSS, use text-overflow: ellipsis along with three conditions: 1. Set a width or max-width on the element. 2. Apply white-space: nowrap or allow block overflow. 3. Use overflow: hidden to clip the text. For multi-line truncation, use -webkit-line-clamp with display: -webkit-box and -webkit-box-orient: vertical while keeping overflow: hidden and text-overflow: ellipsis. Common issues include missing overflow: hidden, no width constraint, or incorrect display type such as inline elements not styled properly.
When text overflows its container and you want to show an ellipsis (…) instead of letting it run off the screen, CSS has a neat built-in solution using text-overflow: ellipsis
. It’s simple but comes with some conditions.

What You Need for Ellipsis to Work
Just setting text-overflow: ellipsis
isn’t enough on its own. For it to function properly, three basic conditions must be met:

- The element must have a defined width or max-width.
- White space inside the element should be set to
nowrap
, or the container must allow overflow in a block direction. - Overflow needs to be hidden so that anything beyond the container isn't visible.
Here's a basic example:
.truncate { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
Without these three styles working together, the ellipsis won’t show up. This setup works great for single-line truncation.

Truncating Multi-Line Text
The default text-overflow: ellipsis
only works for single lines. If you're dealing with multi-line blocks of text — like a description or paragraph — you'll need extra CSS to make the ellipsis appear correctly.
One common way is using -webkit-line-clamp
along with a few other properties. Here's how you can do it:
.multi-line-truncate { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; /* number of lines to show */ overflow: hidden; text-overflow: ellipsis; }
This method uses WebKit-specific styles, which means it works well in most modern browsers, though older ones might not support it fully. If browser compatibility is a concern, JavaScript-based fallbacks or clamping libraries are options to consider.
When It Doesn’t Work — Common Pitfalls
Sometimes, even when you think everything is set up right, the ellipsis doesn’t show. A few common issues include:
-
Missing
overflow: hidden
: Without this, the text just spills out. - No width constraint: If the container can grow freely, there’s no overflow to hide.
-
Incorrect display type: For multi-line clamping, the element must behave like a box (
display: -webkit-box
).
Also, inline elements like <span></span>
may not respect these rules unless styled appropriately. In those cases, switching to display: inline-block
might help.
Wrapping Up
Applying ellipsis with text-overflow
is straightforward once you know the required conditions. Whether it's one line or multiple lines, the key is managing overflow and layout behavior properly. It's a small detail, but one that makes a big difference in polished UI design.
That’s about all there is to it — not too tricky, but easy to miss a step if you’re not careful.
The above is the detailed content of Handling text overflow with ellipsis using css text-overflow. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

CSS blocks page rendering because browsers view inline and external CSS as key resources by default, especially with imported stylesheets, header large amounts of inline CSS, and unoptimized media query styles. 1. Extract critical CSS and embed it into HTML; 2. Delay loading non-critical CSS through JavaScript; 3. Use media attributes to optimize loading such as print styles; 4. Compress and merge CSS to reduce requests. It is recommended to use tools to extract key CSS, combine rel="preload" asynchronous loading, and use media delayed loading reasonably to avoid excessive splitting and complex script control.

ThebestapproachforCSSdependsontheproject'sspecificneeds.Forlargerprojects,externalCSSisbetterduetomaintainabilityandreusability;forsmallerprojectsorsingle-pageapplications,internalCSSmightbemoresuitable.It'scrucialtobalanceprojectsize,performanceneed

No,CSSdoesnothavetobeinlowercase.However,usinglowercaseisrecommendedfor:1)Consistencyandreadability,2)Avoidingerrorsinrelatedtechnologies,3)Potentialperformancebenefits,and4)Improvedcollaborationwithinteams.

CSSismostlycase-insensitive,butURLsandfontfamilynamesarecase-sensitive.1)Propertiesandvalueslikecolor:red;arenotcase-sensitive.2)URLsmustmatchtheserver'scase,e.g.,/images/Logo.png.3)Fontfamilynameslike'OpenSans'mustbeexact.

Autoprefixer is a tool that automatically adds vendor prefixes to CSS attributes based on the target browser scope. 1. It solves the problem of manually maintaining prefixes with errors; 2. Work through the PostCSS plug-in form, parse CSS, analyze attributes that need to be prefixed, and generate code according to configuration; 3. The usage steps include installing plug-ins, setting browserslist, and enabling them in the build process; 4. Notes include not manually adding prefixes, keeping configuration updates, prefixes not all attributes, and it is recommended to use them with the preprocessor.

CSScounterscanautomaticallynumbersectionsandlists.1)Usecounter-resettoinitialize,counter-incrementtoincrease,andcounter()orcounters()todisplayvalues.2)CombinewithJavaScriptfordynamiccontenttoensureaccurateupdates.

In CSS, selector and attribute names are case-sensitive, while values, named colors, URLs, and custom attributes are case-sensitive. 1. The selector and attribute names are case-insensitive, such as background-color and background-Color are the same. 2. The hexadecimal color in the value is case-sensitive, but the named color is case-sensitive, such as red and Red is invalid. 3. URLs are case sensitive and may cause file loading problems. 4. Custom properties (variables) are case sensitive, and you need to pay attention to the consistency of case when using them.

CSSselectorsandpropertynamesarecase-insensitive,whilevaluescanbecase-sensitivedependingoncontext.1)Selectorslike'div'and'DIV'areequivalent.2)Propertiessuchas'background-color'and'BACKGROUND-COLOR'aretreatedthesame.3)Valueslikecolornamesarecase-insens
