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() ...
随机推荐
- HeaderFile (1.2-1.6) 中 hct.h 使用教程
下载 HeaderFile 1.2 HCT 是干什么的 辅助数据生成 主干框架 你需要包含必须的头文件 hct.h 此外,你需要实现如下函数: void create() 数据生成函数 void so ...
- [OI] 欢夏!邪龙?马拉车!
标题来自原神 算法概述 Manacher 算法 用途:寻找回文串,最板子的情况下用于字符串的回文子串计数 给定一个字符串 \(S\),求出它全部的回文子串 容易想到一种暴力的 \(n^{2}\) 做法 ...
- 第5天:基础入门-反弹SHELL&不回显带外&正反向连接&防火墙出入站&文件下载
文件上传下载-解决无图形化&解决数据传输 命令生成:https://forum.ywhack.com/bountytips.php?download 反弹shell 以参照物为准,以Linux ...
- 彻底解决 user.config 文件损坏
症状见 发生 Configuration system failed to initialize 错误的一个特例 解决的办法,在去读 user.settings 之前捕获错误,比如 Main() 里面 ...
- Android 内存分析(java native heap内存、虚拟内存、处理器内存.
1.jvm 堆内存(dalvik 堆内存) 每个Java应用程序在运行时都会拥有自己的JVM实例,这个实例会为其分配独立的堆内存空间.这意味着不同的应用程序之间不会共享堆内存. 不同手机中app进程的 ...
- 使用SourceTree管理仓库代码
1.首先我们需要下载sourcetree,你可以去官网下载自己需要的版本. 2.安装完毕之后,我们需要获取ssh密钥与github关联上才能使用 按下面的操作开始执行.确定之后,会出现一个字符界面,输 ...
- Promise 有几种状态,什么时候会进入catch?
Promise 有几种状态 三个状态:pending.fulfilled.reject 两个过程:padding -> fulfilled.padding -> rejected Prom ...
- 在不需要WiFi密码的情况下进行断网攻击
本教程只能用于学习研究之用 任何未经他人允许的攻击行为都是违法行为 参考教程 https://www.youtube.com/davidbombal 准备 * kali linux 系统 这里使用的是 ...
- 云原生周刊:Kubernetes v1.30 发布 | 2024.4.22
开源项目推荐 pv-migrate pv-migrate 是一个 CLI 工具/kubectl 插件,可轻松将一个 Kubernetes 的内容迁移 PersistentVolumeClaim 到另一 ...
- KubeSphere 对 Apache Log4j 2 远程代码执行最新漏洞的修复方案
Apache Log4j 2 是一款开源的日志记录工具,被广泛应用于各类框架中.近期,Apache Log4j 2 被爆出存在漏洞,漏洞现已公开,本文为 KubeSphere 用户提供建议的修复方案. ...