关于antdv表格a-table设置scroll属性后表格行错位解决方案

antdv表格a-table设置scroll属性后表格行错位解决方案

1.需求背景
  • 最近开发财务项目中使用到了UI框架antdv,使用a-table后需要设置表格一屏显示,即表格内容超过了屏幕之后显示滚动条,但是表格行内容出现错位。
    在这里插入图片描述
解决方案
  • 1.先设置a-table的scroll属性,如下:

  • <a-table
            ref="table"
            size="small"
            rowKey="id"
            :columns="columns"
            :dataSource="tableData"
            :pagination="ipagination"
            :loading="loading"
            tableLayout='fixed'
            :scroll='{x:true,y:`calc(100vh - ${tableHeight})`}'
            :rowSelection="rowSelection"
            @change="handleTableChange">
    </a-table>
    
  • 2.设置了第一步之后,此时表格已经实现了X-Y轴的溢出滚动,保持内容在当前屏幕之内滚动显示,但是此时出现了另外一个问题,表格的行出现了错位问题,解决如下:

  • // 出现错位问题的根源在于设置了列宽度之后,如果当前列的内容宽度超出了列宽度,那么当前列宽度被撑开了,而此时列表头的宽度还是初始值,所以导致了错位现象,因此对于内容很多的列需要单独处理,如下:
    columns: [
        {
            title: '科目名称',
            align: "center",
            width: 150,
            ellipsis:true,
            dataIndex: 'summary',
            customRender: function(t) {
                return t.length>7?(t.slice(0, 7) + '...'):t
            }
        },
    ]
    
  • 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* [ELEMENTUI 之EL-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 ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木屋x

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值