一行或两行后的CSS字省略号('...')

use*_*072 12 html javascript css ellipsis

我正在尝试使用CSS在JavaScript中创建一个自动换行,条件是:

如果DIV包含一个非常长的单词,例如"asdasfljashglajksgkjasghklajsghl",我想显示:

     |asdasfljashglajk...|
Run Code Online (Sandbox Code Playgroud)

如果DIV包含一个长句,例如"如果我每次被告知我不能得到一分钱",我想显示:

     |if i had a dime for|
     |everytime i was... |
Run Code Online (Sandbox Code Playgroud)

我使用HTML,CSS,JavaScript.我不能使用jQuery.

如果有可能请告诉我.

小智 10

我知道我对anwser有点迟了但是我只是编写了一些代码,这些代码同时包含:

    if ($('your selector').height() > 50) {
        var words = $('your selector').html().split(/\s+/);
        words.push('...');

        do {
            words.splice(-2, 1);
            $('your selector').html( words.join(' ') );
        } while($('your selector').height() > 50);
    }
Run Code Online (Sandbox Code Playgroud)

当然,您应该将jQuery选择器保存在变量中,这样您就不会每次都查询DOM.

  • OP不是说“我不能使用jQuery”吗? (3认同)

Mou*_*ous 9

发现这个:

http://codepen.io/martinwolf/pen/qlFdp

看起来像-webkit-line-clamp在某些浏览器中工作.


Pra*_*obh 6

为此你可以使用text-overflow: ellipsis;财产.写这样的

white-space: nowrap;
text-overflow: ellipsis;
Run Code Online (Sandbox Code Playgroud)

  • 这适用于第一种情况(长字上的省略号),但不适用于第二种情况(第二行的省略号) (6认同)
  • 第二种情况并不简单,只有css,请参阅http://stackoverflow.com/questions/3404508/cross-browsers-mult-lines-text-overflow-with-ellipsis-appended-within-a-widthhe (4认同)