單行和多行的文字省略,並用省略號代替
阿新 • • 發佈:2019-02-08
單行文字省略:
{
overflow:hidden; //超出部分隱藏
white-space:nowrap; //強制不換行
text-overflow:ellipsis //省略號
};
寫在css裡,很簡單的三行程式碼,但是注意,必須為父元素設定寬度,當然也必須得是塊元素了。
多行文字省略,若使用上面的方法,只會顯示第一行的文字,後面的全部省略,與期望不符,比對多種方法後,推薦用JavaScript進行設定,具體程式碼如下:
<div id='text'> /* 多行文字內容 */ </div> <script type="text/javascript"> function textHide(num,con){ //定義函式 var contain = document.getElementById(con); var txt = contain.innerHTML; if(txt.length>num){ txt = txt.substring(0,num-1)+"..."; contain.innerHTML = txt; }else{ console.log("文字未超出,無需省略") } }; textHide(100,'text'); //呼叫函式 </script>
引數1(num)是允許最大文字數目,引數2(con)是元素節點的id名稱
原理:
- 根據節點id,獲取文字的全部內容
- 比較文字的長度(txt.length)和目標長度(num)之間的大小
- 若超出目標長度,擷取目標長度的內容(subtring方法),並在後面拼接“...”字串,替換當前文字內容
當然,還是要塊元素,並設定寬和高。