CSS "text-overflow: ellipsis;" finally landed in Gecko
bugzilla.mozilla.org
bugzilla.mozilla.org
it would be very useful if we had a property to truncate text when it reaches the end of a container with a fixed height. so if the container is 3.5 lines tall, 3 lines should be shown with an ellipsis at the last character. bonus points if we can specify a separator, so that the ellipsis will only be applied after the last whole word (space), line (line break), or just character.
I needed this desperately for a project I worked on last fall and ended up writing tons of JS which felt oh so wrong. Newspapers and magazines would LOVE to have that. Especially on mobile Safari. Especially on tablets.
When you get into fancier concepts like truncating a set of lines, or only at certain word/phrase/sentence boundaries, you're into desktop publishing typesetting. To do that properly you're not just truncating when the container overflows, you're also adjusting the spacing between words and letters to make every line look consistent and to get as much of the text to fit neatly as you can. There aren't many pieces of software that professionals trust to do that well, and the ones that exist are expensive. We're not likely to see those algorithms getting into everyone's browser.
As long as the container is at least wide enough for one ellipses you shouldn't need to leave room: once you've decided where to place all the text, where an ellipses is needed overwrite the area with what would otherwise be the background and add the dots.
Though I suppose that might not be desirable as it would result in partial characters. A little more hassle (but not much) would be to work back until the end of the next whole character.
But other than that you are right: the difficulty won't be rendering the ellipsis it will be in deciding what to do when the (implicit or explicit, and quite possibly deeply nested) "make this all fit if you can" and "truncate this if you need to" directives overlap - that could get quite hairy, if you want to get something that looks nice for most conceivable combinations.
The only trick is to open up enough space at the end of the line to render the ellipsis. It's not rocket science to do it well enough.
You can see a test page here, which only works in Firefox due to the feature detection: http://www.bramstein.com/projects/text-overflow/examples.htm...
http://mattsnider.com/css/css-string-truncation-with-ellipsi...
Yay for not needing this down the road.
CanIUse shows that Firefox is the last browser to support ellipsis [1] and comparing Firefox 7 to Chrome 14 [2] shows a few other things that some web developers would like.
Firefox also has quite a long way to go on HTML5 forms [3].
[1] http://www.caniuse.com/#search=overflow [2] http://www.caniuse.com/#compare=y&b1=firefox+7&b2=ch... [3] http://wufoo.com/html5/