21

I have a div with some inner content that I need to have an ellipsis when it overflows. I've done this many times on other elements but for some reason this is not behaving as expected.

Also, I left white-space:nowrap; out on purpose because the content then does not break to the next line within the span, as a result I only see 2-3 words before the ellipsis starts. I would like the text to span the entire height of the parent container then have the ellipsis start for content that exists beyond those bounds.

Here is a working Demo: http://jsfiddle.net/sadmicrowave/DhkSA/

CSS:

.flow-element{
     position:absolute;
     font-size:12px;
     text-align:center;
     width:75px;
     height:75px;
     line-height:70px;
     border:1px solid #ccc;
}

.flow-element .inner{
     position:absolute;
     width:80%;
     height:80%;
     border:1px solid blue;
     top:0px;
     bottom:0px;
     left:0px;
     right:0px;
     margin:auto;
     text-align:center;
}

.flow-element .long{
     float:left;
     height:50px;
     width:100%;
     line-height:12px;
     border:1px solid red;  
     text-overflow:ellipsis;
     overflow:hidden;
}

HTML:

<a class='flow-element' style='top:100px; left:50px;'>
  <div class='inner'>
     <span class='long'>Box 1 and some other content that should wrap and do some other stuff</span>
  </div>
</a>

Can someone please help. I need to display as much text as possible within the red outlined span while having an ellipsis when text content overflows the container...

Thanks in advance

5 Answers 5

44

you can't apply text-overflow: ellipsis to inline elements (span), it can be used with block elements only (div)

and also use white-space:nowrap; when using text-overflow: ellipsis;

check this, i have converted your inner span to div, just for proof of concept

http://jsfiddle.net/3CgcH/5/

i don't know why you have used span, but as per your logic you can make changes as i suggested

Update:

someone will think that in the question if i put white-space: nowrap; to span element then the text-overflow: ellipsis: is working so may be i am wrong, but it is not the case because questioner has used float: left in the span tag that means the span tag will be converted to a box block and work like a normal block level element, which is also wrong thing to do because if you need the block element behavior then use a block level element

Reference:

http://www.w3.org/TR/CSS2/visuren.html#propdef-float

http://dev.w3.org/csswg/css3-ui/#text-overflow

Sign up to request clarification or add additional context in comments.

4 Comments

that is absolutely wrong. works very nice with inline elements.
then why this w3c draft says that it applies to block contains only ? dev.w3.org/csswg/css3-ui/#text-overflow
white-space:nowrap; is what I was missing
I'm a bit late to the party but overflow:hidden also made it work for me.
2

In my case it helped to set display: block;

Comments

1

Add this:

white-space:nowrap;

to .flow-element .long

then the overflow-ellispsis works.

1 Comment

please see my comment to Heather Walters' post of the same solution.
1

I think you will find the problem is caused by having text-align: center;

Comments

0

Add white-space:nowrap; to your .inner div.

8 Comments

adding your suggestion does indeed add the ellipsis to the text however the text does not wrap to the width of the inner element. I need to show as much of the text as I can, not just 2-3 words of it...
Yeah, I noticed that and was working on a solution that would wrap further than one line....
@sadmicrowave: You don't understand how text-overflow works. You want to see more? Then you must enlarge the width.
@Sven, would I not be able to increase the height and also see more?
no, the problm is, that text-overflow don't really works without white-space:nowrap. And that means you have only one line of text.
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.