1. 程式人生 > >單行和多行的文字省略,並用省略號代替

單行和多行的文字省略,並用省略號代替

單行文字省略:

{  
  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名稱

原理:

  1. 根據節點id,獲取文字的全部內容
  2. 比較文字的長度(txt.length)和目標長度(num)之間的大小
  3. 若超出目標長度,擷取目標長度的內容(subtring方法),並在後面拼接“...”字串,替換當前文字內容

當然,還是要塊元素,並設定寬和高。