element ui表格showOverflowTooltip文字过长优化方案

在 table 组件展示数据时,对于文本过长的单元格添加show-overflow-tootip 属性后,tooltip 的宽度会撑满屏幕
在这里插入图片描述
从 DOM 节点可以看到,当鼠标进入 show-overflow-tooltip 属性作用的单元格时,body 下会多一个 class 为 el-tooltip__popper 的节点,这个节点就是真实的 tooltip 的 DOM

在这里插入图片描述
看来,一种非常直观的优化,就是直接重新 el-tooltip__popper 的样式,像这样:

<style>
.el-tooltip__popper {
    width: 250px;
}
</style>

注意:这个样式重写必须通过设置全局样式修改,如果在组件中添加样式不能使用 scoped 属性

在这里插入图片描述

上面这种方法的缺点显而易见,会造成全局样式的污染。在 table 组件源码中,可以从 table-body.js 中发现,showOverflowTooltip 的实现,也是使用了 element ui 的 tooltip 组件

如此,这里关闭 showOverflowTooltip,用 slot 重写单元格内容,使用我们自己定义的 tooltip 样式,像这样:

<el-table-column prop="address" label="地址" width="300">
   <template slot-scope="{ row }">
        <el-tooltip class="item" effect="dark" placement="top-start">
            <div class="tooltip-content" slot="content">{{ row.address }}</div>
            <div class="tooltip-trigger">{{ row.address }}</div>
        </el-tooltip>
    </template>
</el-table-column>

并且只需要在组件中修改 tooltip 提示内容的样式即可

<style scoped>
.tooltip-content {
    width: 250px;
}
.tooltip-trigger {
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}
</style>

而这种方法也有缺点,每个单元格都会有 tooltip 逻辑,而不是在文本超出裁剪之后才显示,那就就按需选择吧

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

筷头哥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值