2017-11-07【當(dāng)文字過長時(shí)抱冷,用點(diǎn)點(diǎn)點(diǎn)(...)顯示】

方法1:css本身有一個(gè)文字溢出屬性:text-overflow:ellipsis;恐疲,當(dāng)溢出后顯示點(diǎn)點(diǎn)點(diǎn)(...)

caniuse_text-overflow.png

去了can i use測(cè)了一下text-overflow屬性的兼容性草则,基本上現(xiàn)在主流瀏覽器都支持潭陪。以前Fire Fox不支持雄妥,需要額外引入一個(gè)xml文件,現(xiàn)在不需要了依溯。

<style>
body{
    font-size: 12px;
}
.text_overflow_ellipsis{
    width:400px;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}
</style>

<div class="text_overflow_ellipsis" style="margin: 20px auto; background-color: #cccccc">
    當(dāng)今世界日新月異老厌,新生事物層出不窮。人生卻短短百年黎炉,有限的時(shí)間面對(duì)的是無限的事物枝秤。
</div>
1.png

方法2:參照張?chǎng)涡竦膍argin負(fù)值定位法

<style>
body{
    font-size: 12px;
}
.zxx_text_overflow {
    width:24em;
    height:1.3em;
    overflow:hidden;
    zoom:1;
}
.zxx_text_overflow .zxx_text{
    float:left;
    height:1.3em;
    margin-right:3em;
    overflow:hidden;
}
.zxx_text_overflow .zxx_dotted{
    width:3em;
    height:1.3em;
    float:right;
    margin-top:-1.3em;
}
</style>

<div class="zxx_text_overflow" style="margin: 20px auto; background-color: #cccccc;">
    <div class="zxx_text" >這是一段比較長的文字,用來測(cè)試是否文字溢出時(shí)會(huì)用省略號(hào)顯示慷嗜。</div>
    <div class="zxx_dotted" >…</div>
</div>
2.png

感覺東西還挺多淀弹,要是項(xiàng)目中用的多還挺麻煩,可以當(dāng)成一種思路擴(kuò)展庆械。

以上方法都不能指定文字的字符數(shù)薇溃,只能以包裹文字的元素寬度去截取。使用jq就可以實(shí)現(xiàn)缭乘,并且可以很好的復(fù)用沐序,使用時(shí)調(diào)用函數(shù)就可以了。當(dāng)項(xiàng)目中有許多地方需要用到時(shí)堕绩,可以使用jq的方法策幼。

方法3:寫函數(shù)實(shí)現(xiàn)該功能,截取特定長度的字符奴紧√亟悖【同樣參照張?chǎng)涡瘢煽创笊癫┛汀?/p>

body{
    font-size: 12px;
}

<div class="zxx_text_overflow" style="width:400px; margin: 20px auto; background-color: #cccccc;">
    當(dāng)今世界日新月異黍氮,新生事物層出不窮到逊。人生卻短短百年铣口,有限的時(shí)間面對(duì)的是無限的事物。
</div>

$(document).ready(function(){
    //限制字符個(gè)數(shù)
    $(".zxx_text_overflow").each(function(){
        var maxwidth = 23;
        if($(this).text().length > maxwidth){
            $(this).text($(this).text().substring(0, maxwidth));
            $(this).html($(this).html()+'…');
        }
    });
});

注意:需要引入jQuery觉壶。
1.png

可以看出:是截取了特定長度(23)的字符脑题,而與包裹文字的元素寬度無關(guān)。

那么反過來呢铜靶?

   var wordLimit=function(){
       $(".zxx_text_overflow").each(function(){
           var copyThis = $(this.cloneNode(true)).hide().css({
               'position': 'absolute',
               'width': 'auto',
               'overflow': 'visible'
           });
       $(this).after(copyThis);
           if(copyThis.width() > $(this).width()){
               $(this).text($(this).text().substring(0,$(this).html().length-4));
               $(this).html($(this).html()+'…');
               copyThis.remove();//清除復(fù)制
               wordLimit();
           }else{
               copyThis.remove(); //清除復(fù)制
               return;
           }
       });
   };
   wordLimit();

注意:元素一定要設(shè)置固定寬度(我設(shè)的400px)叔遂,超出該寬度后就會(huì)顯示點(diǎn)點(diǎn)點(diǎn)(...)
1.png

那么將以上兩種方式結(jié)合起來寫一個(gè)jQuery插件來實(shí)現(xiàn):截取特定字符和超過寬度顯示點(diǎn)點(diǎn)點(diǎn)(...)

<div class="zxx_text_overflow1" style="width:400px; margin: 20px auto; background-color: #cccccc;">
    當(dāng)今世界日新月異,新生事物層出不窮争剿。人生卻短短百年已艰,有限的時(shí)間面對(duì)的是無限的事物。
</div>
<div class="zxx_text_overflow1" style="width:400px; margin: 20px auto; background-color: #cccccc;">
    當(dāng)今世界日新月異蚕苇,新生事物層出不窮哩掺。人生卻短短百年,有限的時(shí)間面對(duì)的是無限的事物涩笤。
</div>
<div class="zxx_text_overflow1" style="width:400px; margin: 20px auto; background-color: #cccccc;">
    當(dāng)今世界日新月異嚼吞,新生事物層出不窮。人生卻短短百年蹬碧,有限的時(shí)間面對(duì)的是無限的事物舱禽。
</div>

<div class="zxx_text_overflow2" style="width:400px; margin: 20px auto; background-color: #cccccc;">
    當(dāng)今世界日新月異,新生事物層出不窮恩沽。人生卻短短百年誊稚,有限的時(shí)間面對(duì)的是無限的事物。
</div>
<div class="zxx_text_overflow2" style="width:400px; margin: 20px auto; background-color: #cccccc;">
    當(dāng)今世界日新月異罗心,新生事物層出不窮里伯。人生卻短短百年,有限的時(shí)間面對(duì)的是無限的事物渤闷。
</div>
<div class="zxx_text_overflow2" style="width:400px; margin: 20px auto; background-color: #cccccc;">
    當(dāng)今世界日新月異疾瓮,新生事物層出不窮。人生卻短短百年肤晓,有限的時(shí)間面對(duì)的是無限的事物爷贫。
</div>


   (function($){
       $.fn.wordLimit = function(num){
           this.each(function(){
               if(!num){
                   var copyThis = $(this.cloneNode(true)).hide().css({
                       'position': 'absolute',
                       'width': 'auto',
                       'overflow': 'visible'
                   });
                   $(this).after(copyThis);
                   if(copyThis.width() > $(this).width()){
                       $(this).text($(this).text().substring(0,$(this).text().length-4));
                       $(this).html($(this).html()+'...');
                       copyThis.remove();
                       $(this).wordLimit();
                   }else{
                       copyThis.remove();
                       return;
                   }
               }else{
                   var maxwidth=num;
                   if($(this).text().length > maxwidth){
                       $(this).text($(this).text().substring(0, maxwidth));
                       $(this).html($(this).html()+'...');
                   }
               }
           });
       };
       //調(diào)用方式:
       $('.zxx_text_overflow1').wordLimit();
       $('.zxx_text_overflow2').wordLimit(23);
   })(jQuery);

注意:不傳參數(shù)調(diào)用時(shí),元素一定要設(shè)置寬度补憾。

如何實(shí)現(xiàn):多行文本超出漫萄,在最后一行顯示點(diǎn)點(diǎn)點(diǎn)(...)

.box{
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
1.png

IE不支持-webkit-box

1.png

-webkit-line-clamp支持性較差
-webkit-line-clamp就是控制行數(shù)的,是3就是顯示3行盈匾,3行結(jié)束點(diǎn)點(diǎn)點(diǎn)(...)腾务,如果是2則最多2行,第2行結(jié)束顯示點(diǎn)點(diǎn)點(diǎn)(...)削饵。

1.png

-webkit-box-orient我竟然沒有查到支持性岩瘦,可能很差未巫。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市启昧,隨后出現(xiàn)的幾起案子叙凡,更是在濱河造成了極大的恐慌,老刑警劉巖密末,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件握爷,死亡現(xiàn)場(chǎng)離奇詭異违施,居然都是意外死亡薄坏,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門范咨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刹碾,“玉大人燥撞,你說我怎么就攤上這事∶灾模” “怎么了物舒?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瞬矩。 經(jīng)常有香客問我茶鉴,道長锋玲,這世上最難降的妖魔是什么景用? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮惭蹂,結(jié)果婚禮上伞插,老公的妹妹穿的比我還像新娘。我一直安慰自己盾碗,他們只是感情好媚污,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著廷雅,像睡著了一般耗美。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上航缀,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天商架,我揣著相機(jī)與錄音,去河邊找鬼芥玉。 笑死蛇摸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的灿巧。 我是一名探鬼主播赶袄,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼揽涮,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了饿肺?” 一聲冷哼從身側(cè)響起蒋困,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎敬辣,沒想到半個(gè)月后家破,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡购岗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年汰聋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片喊积。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡烹困,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出乾吻,到底是詐尸還是另有隱情髓梅,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布绎签,位于F島的核電站枯饿,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏诡必。R本人自食惡果不足惜奢方,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望爸舒。 院中可真熱鬧蟋字,春花似錦、人聲如沸扭勉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涂炎。三九已至忠聚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間唱捣,已是汗流浹背两蟀。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留爷光,地道東北人垫竞。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親欢瞪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子活烙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容