html table td過長解決辦法


頁面需要顯示一個table,列數比較多,導致無法一屏無法顯示,導致需要左右拖動屏幕,十分不方便~

於是,需要將較長的列分行顯示,在td 處用style="width:90px;"結果不起作用了,之前確實是可以的,想起最近剛升級了chrome瀏覽器。

在網上搜索答案時,大多時隱藏多余內容的方式,在快要放棄,暴利舍棄一些列時,答案出現了

參考:http://www.xuehuile.com/blog/b17e89b84e784f73bbcdaa9280044656.html

方法:

<style>
table{
table-layout:fixed;word-wrap:break-word;
}
</style>

然后在th出設置style="width:90px;"即可~

 

全文:

這個問題呢,是由於我們公司測試的部門測出來的,雖然說測試的內容本身就是個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事件。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM