Element Plus组件库el-table单元格内容超出时tooltip显示优化
前情
公司有经常需要做一些后台管理页面,我们选择了Element Plus,它是基于 Vue 3,面向设计师和开发者的组件库,是Vue框架生态中比较火的UI组件库,组件库丰富易用,组件链接:一个 Vue 3 UI 框架 | Element Plus,对于在使用el-table的时候,设置show-overflow-tooltip,当单元格内容超出宽度的时候显示省略号同时当鼠标移入会通过tootip显示单元格全内容。
坑位
在使用show-overflow-tooltip显示全内容的时候,发现tips的宽度你是没有可配置项的,它默认会在一行显示全内容直到铺满整个屏幕,非常影响观感体验,示例图如下:

Why?
特意看了一下el-tooltip的页面上结构,发现它是通过inset和transform来控制位置的,并没有限制宽度的地方,如果去掉transform它就是fixed左边left为0,右边right为auto,当内容足够多,它会一直到占满整屏,所以才出现了上面的超长提示框问题,关键代码如下:
<div
class="el-popper is-dark "
style="z-index: 2035; position: fixed; inset: auto auto 0px 0px; margin: 0px; transform: translate(551px, -370px);"
data-popper-escaped=""
data-popper-placement="top"
>
提示内容...
<div
class="el-popper__arrow"
style="position: absolute; left: 0px; transform: translate(222px, 0px);"
></div>
</div>
解决方案1
对于后台项目,对UI和交互一直都不是特别严格的,既然它自带的el-tooltip有问题,那我们就干脆摒弃它,html有个自带的属性可以同样实现鼠标移入提示效果,那就是title属性,关键代码如下:
<template>
<el-table :data="list" border>
<el-table-column label="内容">
<template v-slot={ row }>
<div :title="row.process" class="oneLine">{{ row.process }}</div>
</template>
</el-table-column>
</el-table>
</template>
解决方案2
自带的不香,又想要el-tooltip效果,那我们自己针对单元格内容使用el-tooltip,不使用表格默认的,关键代码如下:
<template>
<el-table :data="list" border>
<el-table-column label="内容">
<template v-slot={ row }>
<el-tooltip effect="dark" placement="top">
<template #content>
<p>{{row.process}}</p>
</template>
<div class="oneLine">
{{ row.process }}
</div>
</el-tooltip>
</template>
</el-table-column>
</el-table>
</template>
解决方案3
其实表格的show-overflow-tooltip工作基本是正常的,只是在宽度上不尽如人意,那我们为什么不想办法调整它的宽度了,于是想到我们可以通过重写样式来达到自己满意的结果,关键代码如下:
.smstemplate-config {
::v-deep(.el-popper) {
max-width: 640px;
word-break: break-all;
}
}
总结
个人推荐使用第三种,侵入性小,修改工作量也是最小的,也是我用的方式,当然上面三种方式都能解决问题,可以根据自己的实际情况来决定使用哪一种方式,解决此的方法也绝不止上面三种,如果你有更好的解决方案欢迎留言一起讨论。
Element Plus组件库el-table单元格内容超出时tooltip显示优化的更多相关文章
- 使用CSS和JQuery实现表格单元格内容超出时部分隐藏,隐藏部分以...显示
1.使用CSS实现,给此单元格添加一个Class: width:130px; display:block; overflow:hidden; word-break:keep-all; white-sp ...
- Vue. 之 Element table 单元格内容隐藏
Vue. 之 Element table 单元格内容隐藏 在table显示数据时,若某个单元格的内容过多,需要进行隐层,在这一列的单元格属性添加::show-overflow-tooltip=&quo ...
- table单元格内容过多换行显示
<table class="am-table am-table-striped am-table-hover table-main am-table-compact " st ...
- 使用VUE组件创建SpreadJS自定义单元格(二)
在上篇中,我们介绍了如何通过设置runtimeCompiler为true,在Vue中实现了动态创建电子表格组件.想了解具体内容可看点击查看使用VUE组件创建SpreadJS自定义单元格(一). 但是在 ...
- js如何实现动态显示表格数据(点奇数显示奇数单元格内容)
js如何实现动态显示表格数据(点奇数显示奇数单元格内容) 一.总结 一句话总结: 1.动态指定表格中每个单元格的id,然后通过id可以获取每个单元格,然后对里面的innerHTML进行赋值. 2.弄了 ...
- JavaScript动态改变表格单元格内容的方法
本文实例讲述了JavaScript动态改变表格单元格内容的方法.分享给大家供大家参考.具体如下: JavaScript动态改变表格单元格的内容,下面的代码通过修改单元格的innerHTML来修改单元格 ...
- EasyUI Datagrid 鼠标悬停显示单元格内容 复制代码
EasyUI Datagrid 鼠标悬停显示单元格内容 ,halign:, align: 0 « 上一篇:LINQ to Entities 中的查询» 下一篇:去掉字符串中的非数字字符 posted ...
- EasyUI的Datagrid鼠标悬停显示单元格内容
功能描述:table鼠标悬停显示单元格内容 1.js函数 function hoveringShow(value) { return "<span title='" + va ...
- asp.net C#取Excel 合并单元格内容
asp教程.net c#取excel 合并单元格内容读取excel数据,填充dataset// 连接字符串 string xlspath = server.mappath("~/www.11 ...
- easyUi datagrid鼠标经过提示单元格内容
此文章是基于 EasyUI+Knockout实现经典表单的查看.编辑 一. jquery.cellTip.js /** * 扩展两个方法 */ using('datagrid', function() ...
随机推荐
- Nuxt.js 应用中的 app:beforeMount 钩子详解
title: Nuxt.js 应用中的 app:beforeMount 钩子详解 date: 2024/10/4 updated: 2024/10/4 author: cmdragon excerpt ...
- html5新标签 画布 canvas 替代了 flash
绘制矩形边框,和填充不同的是绘制使用的是strokeRect, 和strokeStyle实现的 绘制路径 绘制路径的作用是为了设置一个不规则的多边形状态 路径都是闭合的,使用路径进行绘制的时候需要既定 ...
- [Dest0g3 520迎新赛]funny_upload
打开靶机抓包发现过滤代码 发现.htaccess能上传后传入图片马 发现内容对<?进行过滤 我们换一种方式写后门代码 <script language="php"> ...
- mysql基础-事务
本篇章为初步了解mysql数据事务控制问题,事务作为MySQL的基础篇章是至关重要的一部分内容! 事务 1.事务简介 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一 ...
- ERQ:32位转5位仅掉些许精度,来看看两段式后训练量化 | ICML 2024
后训练量化(PTQ)在视觉Transformer(ViTs)领域引起了广泛关注,因为它在模型压缩方面表现出了高效率.然而,现有的方法通常忽视了量化权重和激活之间复杂的相互依赖关系,导致了相当大的量化误 ...
- 云原生周刊:K8s 的 13 个最佳开源监控工具
开源项目推荐 Silver Surfer 该项目旨在检查 Kubernetes 对象的 API 版本兼容性,并为其提供迁移路径,以便为集群升级做好准备. Actions Runner Controll ...
- 欢迎体验程序员Lingma的助攻手
如果你是一位软件开发者,(同义灵码)Lingma可以帮助你做基础架构的脚手架相关工作事宜以及部分代码开发,对比之前没有灵码,现在提效了她可以给予你零编码的快感,准确快速地读懂了你我的需求,例如答问场景 ...
- 可重入锁ReentrantLock
ReentrantLock 重入锁,是实现Lock 接口 的一个类,也是在实际编程中使用频率很高的一个锁,支持重入性,表示能够对共享资源重复加锁,即当前线程获取该锁后再次获取不会被阻塞. 要想支持重入 ...
- PHP调用Python无返回或提示No Module
问题:自己通过命令行执行python正常,但通过php调用就没有反应.解决方法:1.首先检查一下php有没有执行权限,简单粗暴的:sudo chmod 777 xxx.php2.Python如果有中文 ...
- .NET周刊【10月第3期 2024-10-20】
国内文章 我被 .NET8 JIT 的一个BUG反复折磨了半年之久(JIT tier1 finally optimizations) https://www.cnblogs.com/calvinK/p ...