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