眾所周知,文本溢出顯示省略號用CSS就可以: 單行文本: 多行文本: 如果想中間顯示省略號呢?? 現在需求是,一段文本很長,但最後有一個關鍵詞很重要,而且改關鍵詞有括弧括起來的,需要顯示出來,所以如果文本過長,不單隻做省略號處理,還要把括弧裡面的內容顯示出來。 上面的代碼意思是:如果文本長度大於13 ...
眾所周知,文本溢出顯示省略號用CSS就可以:
單行文本:
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
display:block;
多行文本:
overflow : hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
如果想中間顯示省略號呢??
現在需求是,一段文本很長,但最後有一個關鍵詞很重要,而且改關鍵詞有括弧括起來的,需要顯示出來,所以如果文本過長,不單隻做省略號處理,還要把括弧裡面的內容顯示出來。
// 中間顯示省略號,截取顯示括弧內容 var str = $(".text").text(); var last = 0; var all = str.length; var fisrt = str.substring(0,6); // 沒有中文括弧( if (str.lastIndexOf('(') == -1) { // 也沒有英文括弧( if (str.lastIndexOf('(') == -1) { last = all - 5; }else{ // 有英文括弧(,就從英文括弧開始截取 last = str.lastIndexOf('('); } }else{ last = str.lastIndexOf('('); } // 如果長度大於13個字元才顯示省略號 if (all > 13) { $(".text").text(fisrt+" ... "+str.substring(last,all)); }
上面的代碼意思是:如果文本長度大於13個字元、文本內包含中文或英文括弧就會截取括弧到最後一個字元的內容,預設截取前6個字元跟省略號...拼接起來,得到最終的中間省略號,前面6個字,後顯示括弧內容的效果。
最後:
網上看了好像css沒有顯示前面跟後面並且中間顯示省略號的屬性,所以用js截取拼接得到對應的效果。