1. 程式人生 > >DataTables列過多時固定表格寬度(設定橫向滾動條)

DataTables列過多時固定表格寬度(設定橫向滾動條)

當表格的列比較多的時候,可能就需要固定表格的寬度了,預設的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;
}

表格佈局演算法為固定(列寬由表格寬度和列寬度設定)。