I'm using the following code to to prevent text from overflowing to a new line:
.info-box{
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
height: 3em;
width: 300px;
font-size: 1em;
line-height: 1em;
}
This works, as expected, but there is room for three lines in this box. How can I command browsers to apply the elipsis if the text extends beyond the third line? Or does text-overflow only work over one?
I probs won't bother if I need JS for this.
You can fake it with CSS like this.
Add a <span>...</span>
at the beginning of the div
.
<div class="info-box"><span>...</span>Lorem ipsum dolar etc.</div>
In your CSS
get rid of the nowrap
and text-overflow
add some padding-right
position the span
down by the bottom right.
CSS
.info-box{
overflow:hidden;
height: 3em;
width: 300px;
font-size: 1em;
line-height: 1em;
padding-right:20px;
}
.info-box span{
position:relative;
top:31px;
left:297px;
display:inline-block;
}
Working Example: http://jsfiddle.net/jasongennaro/UeCsk/
fyi... there will be a small gap at the top left, where the ellipsis is supposed to be (because we are using position:relative;
.
fyi 2... this should work with however many lines you want (you mentioned three in the question) provided that you adjust the top
and left
.