每次单击显示列按钮后,表格列的宽度都会增加

Posted

技术标签:

【中文标题】每次单击显示列按钮后,表格列的宽度都会增加【英文标题】:table columns keeps increasing width after every show column button click 【发布时间】:2021-12-27 11:33:19 【问题描述】:

每次我按下使某些列出现和消失的按钮时,表格列的宽度都会逐渐增加。有什么办法可以解决这个问题?我使用 DataTables 和按钮扩展来实现列的可见性。我尝试了 autoWidth: true 但它仍然不起作用。

这是我的 JS 代码

var dataTableCurrent = $('#table-current').DataTable(
 autoWidth: true,
 responsive: true,
 dom: 'Bfrtip',
 columnDefs: [ 
  targets :[ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 ],
  className: 'adv_col'
   ],
buttons: [ 
  extend: 'columnToggle',
  columns: '.adv_col',
  text: 'Show advanced columns'
 ]
);    

还有我的表格 CSS

.table-wrapper 
    margin: 2em auto;
    width: 50%;

table 
    font-family: Helvetica, sans-serif;
    font-size: 0.8rem;
    border: hidden;
    border-collapse: collapse;

theadbackground-color: green; color: white; text-align: center;
tbodybackground-color: #c2c2c2; tbody tr:hover background-color: #0096FF;
td, th 
    border: 0.5px solid #ddd;
    padding: 8px;
    vertical-align: middle;
  
tr:nth-child(even)background-color: #f2f2f2;
#operation-buttons text-align: center;
.fa-user-times color: #FF0000; .fa-user-times:hover color: black;
.fa-archive color: #2F4F4F; .fa-archive:hover color: orange;
.fa-box-open color: #2F4F4F; .fa-box-open:hover color: yellow;
.archive-button, .delete-button, .unarchive-button 
    display: inline-block;
    font-size: 1.5rem;

#table-archived display: none;

【问题讨论】:

【参考方案1】:

autoWidth 设置为false 并告诉我会发生什么。这应该会有所帮助,但您没有提供任何指向 codepen 或 jsfiddle 的链接来测试它。

var dataTableCurrent = $('#table-current').DataTable(
 autoWidth: false,
 responsive: true,
 dom: 'Bfrtip',
 columnDefs: [ 
  targets :[ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 ],
  className: 'adv_col'
   ],
buttons: [ 
  extend: 'columnToggle',
  columns: '.adv_col',
  text: 'Show advanced columns'
 ]
);    

【讨论】:

以上是关于每次单击显示列按钮后,表格列的宽度都会增加的主要内容,如果未能解决你的问题,请参考以下文章

excel中怎么单独增加某一列

隐藏列时如何保留表格列的宽度?

html表格table的宽度超出页面宽度时如何不改变table宽度(只显示出滚动条)?

若依vue实现动态表格,可动态查询条件,控制列的显示隐藏及操作权限

若依vue实现动态表格,可动态查询条件,控制列的显示隐藏及操作权限

若依vue实现动态表格,可动态查询条件,控制列的显示隐藏及操作权限