Read more

Use CSS "text-overflow" to truncate long texts

Arne Hartherz
February 07, 2012Software engineer at makandra GmbH

When using Rails to truncate strings, you may end up with strings that are still too long for their container or are not as long as they could be. You can get a prettier result using stylesheets.

Illustration web development

Do you need DevOps-experts?

Your development team has a full backlog? No time for infrastructure architecture? Our DevOps team is ready to support you!

  • We build reliable cloud solutions with Infrastructure as code
  • We are experts in security, Linux and databases
  • We support your dev team to perform
Read more Show archive.org snapshot

The CSS property text-overflow: ellipsis has been around for quite a long time now but since Firefox did not support it for ages, you did not use it. Since Firefox 7 you can! Show archive.org snapshot

Note that this only works for single-line texts. If you want to truncate tests across multiple lines, use a JavaScript solution like Superclamp Show archive.org snapshot . There is also -webkit-line-clamp which works only on Chrome.

Example

Consider this HTML and Sass for a box that is not wide enough for its content:
^

Hello universe!

^
#greetings
width: 100px
white-space: nowrap
overflow: hidden
text-overflow: ellipsis // This is where the magic happens

While incompatible browsers (IE 5.5, Firefox up until 6) will just cut off the text when it reaches its container's borders, in most browsers you will see something like:

Hello univ...

Nice, eh?

When you are doing this for a mobile application, also use -o-text-overflow to target Opera Mobile and Opera Mini which still use the prefixed version.

Posted by Arne Hartherz to makandra dev (2012-02-07 18:47)