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() ...
随机推荐
- ASP.NET Core – Case Style Conversion
前言 之前就有写过一篇 <<前后端沟通 naming conversion 转换需要知道的事>> 这篇做一个总结整理. 我们知道 C# 的 Property 是 PascalC ...
- Cookie——基本使用
Cookie 基本使用 Cookie 原理 Cookie 使用细节 Cookie jsp中获取Cookie
- 可持久化线段————主席树(洛谷p3834)
洛谷P3834 可持久化线段树 2 问题描述: 给定n各整数构成的序列,求指定区间[L,R]内的第k小值(求升序排序后从左往右数第k个整数的数值) 输入: 第一行输入两个整数n,m,分别代表序列长度n ...
- springboot多文件上传、删除、下载到项目本地
package com.example.demo.document; import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.IoUti ...
- Android复习(五)设备兼容—>支持刘海屏
支持刘海屏 刘海屏是指某些设备显示屏上的一个区域延伸到显示面,这样既能为用户提供全面屏体验,又能为设备正面的重要传感器留出空间.Android 在搭载 Android 9(API 级别 28)及更高版 ...
- C#轻松实现Modbus通信
1.前言 大家好!我是付工.前面给大家介绍了一系列关于RS485与Modbus的知识. 终于有人把RS485说清楚了终于有人把Modbus说明白了通透!终于把ModbusRTU弄明白了这样看来,Mod ...
- CSP-S 2022~2023 补题
下面的代码都是远古代码,不打算重写了. CSP-S 2023 T1 密码锁 题意:一个密码锁上有 \(5\) 个位置,每个位置上的数字是 \(0 \sim 9\) 的循环,每次打乱会选择一或两个相邻位 ...
- 在Lua中实现Rust对象的绑定
实现目标:能将Rust对象快速的映射到lua中使用,尽可能的简化使用. 功能目标 以struct HcTestMacro为例: 类型构建,在lua调用local val = HcTestMacro.n ...
- .NET 实现的零部件离散型 MES+WMS 系统
前言 随着制造业的不断发展,企业对于生产效率和管理水平的要求越来越高. EasyMES 是一款基于 .NET 6 开发的零部件离散型 MES(Manufacturing Execution Syste ...
- 《JVM第6课》本地方法栈
1 什么是本地方法 首先要知道什么是本地方法,本地方法并不是 JVM 自己的方法,也不是 jre 里面的方法,而是指那些操作系统自己的方法(如C/C++方法),它们在操作系统目录里.可以这么理解,本地 ...