jquery datatable设置垂直滚动后,表头(th)错位问题
问题描述:
我在datatable里设置:”scrollY”: ‘300px’,垂直滚动属性后,表头的宽度就会错位,代码如下:
<!-- HTML代码 -->
<table id="demo" class="table" cellspacing="0" width="100%"><thead class="the-box"><tr><th style="width: 50px;text-align: left;font-size: 13px; padding-left: 8px">表头1</th><th style="width: 100px;text-align: left;font-size: 13px; padding-left: 8px">表头2</th></tr></thead><tbody></tbody>
</table>
//加载表格
$('#demo').dataTable().fnDestroy();
$('#demo').dataTable({data: tableData, //json数据"bProcessing": true,//正在处理提示"scrollY": '300px', //支持垂直滚动"scrollCollapse": true,"paging": false,"columnDefs": [{ //数据渲染"render": function (data, type, row) {return '<div class="text-indentation-s" title="' + data + '">' + data + '</div>';},"targets": 0}, {//"visible": false,"render": function (data, type, row) {return '<div class="text-indentation-b" title="' + data + '">' + data + '</div>';},"targets": [1]}]
});
效果:
解决方法:
给 table 设置一个样式:table-layout:fixed
(固定表格布局):
<!-- HTML代码 -->
<table id="demo" class="table" style="table-layout:fixed" cellspacing="0" width="100%"><thead class="the-box"><tr><th style="width: 50px;text-align: left;font-size: 13px; padding-left: 8px">表头1</th><th style="width: 100px;text-align: left;font-size: 13px; padding-left: 8px">表头2</th></tr></thead><tbody></tbody>
</table>
固定表格布局与自动表格布局相比,允许浏览器更快地对表格进行布局。
在固定表格布局中,水平布局仅取决于表格宽度、列宽度、表格边框宽度、单元格间距,而与单元格的内容无关。
通过使用固定表格布局,用户代理在接收到第一行后就可以显示表格。