ElementUI el-table 表头错位的解决方案

问题:当el-table固定表头且出现滚动条时,会出现表头错位。

解决:先上CSS

.el-table {
    th.gutter, colgroup.gutter {
        width: 5px !important;//此处的宽度值,对应你自定义滚动条的宽度即可
    }
}


// 关键css代码
.el-table__header colgroup col[name="gutter"] {
    display: table-cell !important;
}

拙见:

当el-table固定表头且出现滚动条时,el-table自动生成的数据,

会由:<th class="gutter" style="width: 0px; display: none;"></th>

变成:<th class="gutter" style="width: 17px;"></th>

而我们又自定义了滚动条,滚动条的宽度缩小,但是自动生成的“gutter”的宽度并没有发生改变,所以这时表头会统一向左发生错位,因为 class="gutter" 的th占位,挤掉了空间。

因此我们需要按以上方式特别处理一下 “gutter” 的宽度。

特别说明:

        本人并没有深入研究 el-table 的生成方式,仅仅是个人怀疑,el-table 会出现以上问题,应该是在创建原生 table 时做了一些特别的处理。但是呢,又没有兼容自定义滚动条的这种情况,因此需要手动处理一下相关表头的样式了。

  • 14
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
el-table表头错位可能是由于表格设置了固定的高度属性(height),导致表头和表身出现错位。这种情况下,可以通过自适应表头的方式来解决表头错位的问题。 一种方法是使用el-table的指令v-tableFit,将代码复制到指令中即可使用。通过指令方式进行调用,指令会根据表头内容自适应设置表头的宽度,从而解决表头错位的问题。使用方式如下:```<el-table v-tableFit></el-table>``` 另一种情景是当自己设置了el-table的height属性,并且数据较多,导致表格出现滚动条时,可能会导致表头和表身有些错位。这种情况下,可以考虑调整表格的样式或者使用特定的CSS样式来解决表头错位的问题。 例如,可以给表格添加border属性,并对表头和单元格进行特定的样式设置,以避免合并后的边框比较粗的情况。具体代码如下: ``` <el-table :data="tabledata" border cell-class-name="cellStyle" header-cell-class-name="headerCellStyle" class="table" style="width:100%"> <el-table-column v-for="(item, index) in labelKeys" :label="item.label" :prop="item.key" :key="index" show-overflow-tooltip></el-table-column> </el-table> ``` 同时,需要设置相应的CSS样式来控制表格的边框: ``` .table { border: 1px solid rgb(68, 67, 67); border-right: none; } .headerCellStyle { border-bottom: 1px solid rgb(68, 67, 67) !important; border-right: 1px solid rgb(68, 67, 67); } .cellStyle { border-bottom: 1px solid rgb(68, 67, 67); border-right: 1px solid rgb(68, 67, 67); } ``` 这样可以通过设置表格边框和特定样式来解决表头错位的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【JavaScript源代码】el-table表头根据内容自适应完美解决表头错位和固定列错位.docx](https://download.csdn.net/download/mmoo_python/72012985)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [el-table表头错位问题](https://blog.csdn.net/Zyrzka/article/details/114688166)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [ELEMENTUIEL-TABLE 的一点小总结[表头内容错位[自定义BORDER问题][自定义列宽度]](https://blog.csdn.net/qq_44242030/article/details/124967629)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值