DataTables列過多時固定表格寬度(設定橫向滾動條)
阿新 • • 發佈:2019-02-08
當表格的列比較多的時候,可能就需要固定表格的寬度了,預設的100%寬已經不適應了。預設的100%寬要實現改變視窗大小也100%的話,在table元素上新增width="100%",至於css的100%為什麼不生效,原因未知。下面就說說設定如何給datatables設定固定的寬度。
1.html程式碼
<div id="tableArea"> <table id="userTable" class="display table table-bordered" cellspacing="0" > <thead> <tr> <th style="display: none">ck</th> <th>序號</th> <th>賬號</th> <th>姓名</th> <th>CPID</th> <th>CP名稱</th> <th>操作</th> </tr> </thead> </table> </div>
2.覆蓋某些樣式(我們的樣式優先順序高,所以會覆蓋內建的樣式)
#tableArea .dataTables_wrapper { position: relative; clear: both; zoom: 1; overflow-x: auto; } #tableArea table{ width: 800px; }
這裡的overflow-x:auto是新增的,表示表格內容超出寬度後,出現橫向滾動條;table的width必須寫死寬度,直接寫在table元素上不生效,原因未知。
3.設定列寬(可略)
"columns": [
{ "data": "number", "orderable": false ,"width":"100px","searchable": false} ]
4.執行瀏覽,發現此時,當瀏覽器視窗小於800畫素的時候,表格出現了橫向的滾動條,正是我們想要的結果。
5.為什麼不用"scrollX":true的配置實現橫向滾動條呢?查詢它渲染後的網頁發現,它把table拆分成了兩個表格,一個表示表頭,一個表示表體。這不是我想要的,而且它表頭的內容若是超出的話是隱藏的。
6.還有兩個樣式,可以參考參考,可能對你有用。
table td{
word-break:break-all;
}
單詞也可以允許換行,這對於單元格的寬度有很好的控制,而不會讓單元格被內容撐開!
table
{
table-layout:fixed;
}
表格佈局演算法為固定(列寬由表格寬度和列寬度設定)。