1. 程式人生 > >HTML怎麼讓table中的td內容過長顯示為固定長度,多餘部分用省略號代替

HTML怎麼讓table中的td內容過長顯示為固定長度,多餘部分用省略號代替

HTML如何讓table中的td內容過長顯示為固定長度,多餘部分用省略號代替
這個問題呢,是由於我們公司測試的部門測出來的,雖然說測試的內容本身就是個BUG,不過這個也讓我學到了一個比較好的歸類於佈局的一個小技巧,就是將td標籤中過長的內容只顯示為這個td的width的長度,之後的便以省略號代替。

方式如下:
這個功能有一個前提,在table中必須設定style:

table-layout: fixed;

這條屬性就是讓table的內部佈局固定大小。這個時候就用width屬性調節td的長度。

之後在新增如下:

    <style>
    
          td {white-space:nowrap;overflow:hidden;text-overflow: ellipsis; }
    
   </style>

屬性描述

white-space:nowrap;規定段落中的文字不進行換行
overflow:hidden;關閉滾動條
text-overflow: ellipsis;溢位的文字顯示為省略號

這個時候你會發現,就算變成了省略號,就會出現不知道內容完整的是什麼?

所以這個時候可以考慮使用td的title屬性,在title屬性中設定內容為顯示內容,這樣只要游標停留在td處就可以顯示全部的內容,如果覺得這個不夠勁。可以考慮自己寫一個mouseover事件,讓內容全部顯示,顯示的方式是自動換行,如果不換行就會出現很難看的樣式。

so:換行也需要table-layout: fixed;

在(IE瀏覽器)長串英文自動回行

方法1:同時加入word-wrap:break-word;

table{

        table-layout:fixed;word-wrap:break-word;

}

方法二:

<style type="text/css">
 /*自動換行,IE,Chrome通用,FireFox連續英文不換行(遇空格換一行)*/
.AutoNewline_break{
  word-wrap:break-word; word-break:break-all; 
}

 .AutoNewline_normal{
   word-wrap:break-word; word-break:normal; 
}
 /*強制不換行,IE,FireFox,Chrome通用*/
 .NoNewline{
    white-space:nowrap
}
/*標籤繼承*/
div {
  background:red;  word-wrap: break-word;  word-break:break-all;
 }
</style>

上述style中的.開頭的是指html標籤中class是的標籤,div就是指所有的div。

如: .NoNewline就是指class為NoNewline的標籤樣式改為:white-space:nowrap

用js修改style即可。當然最後也要寫一個mouseout事件取消mouseover事件。

感謝分享https://blog.csdn.net/tuntun1120/article/details/72903387