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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With