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() ...
随机推荐
- Figma 学习笔记 – Scroll and Position Fixed
Scroll Scroll 属于 prototype 的一部分. 当一个 Frame 的内容超出 Frame 的高度或宽度时, Frame 就具备了 scroll 的能力. 通过 uncheck cl ...
- 学习问题记录:RocketMQ集成到SpringBoot后,消费者无法自动进行消息消费。
情况说明 在SpringBoot中集成了RocketMQ,实践过程中,通过RocketMQ DashBoard观察,生产者可以正常将进行消息提交:通过日志及DashBoard观察,消费者成功在Rock ...
- 关于HOJ的搭建和二开经验小结
经验在最后,先说流程. 除了HOJ,之前先装的HDU,属实难用,然后是hustOJ,嗯很好用,但架不住丑,对管理员实在不友好. 好了不闲记,进入正题: 一.流程 1.官网文档先过一遍. 2.配置好do ...
- Win11本地部署FaceFusion3最强AI换脸,集成Tensorrt10.4推理加速,让甜品显卡也能发挥生产力
FaceFusion3.0.0大抵是现在最强的AI换脸项目,分享一下如何在Win11系统,基于最新的cuda12.6配合最新的cudnn9.4本地部署FaceFusion3.0.0项目,并且搭配Ten ...
- 智慧矿山IT智能运维自动化解决方案
矿山企业是国民经济中的重要组成部分,其资源开发和产业链条中涉及的环节与过程非常繁琐和复杂.随着我国矿山企业规模逐年扩大,为了提高其生产效率和降低其生产成本,信息化.数字化建设成为当下矿山企业发展的重要 ...
- Nuxt.js 应用中的 app:suspense:resolve 钩子详解
title: Nuxt.js 应用中的 app:suspense:resolve 钩子详解 date: 2024/10/6 updated: 2024/10/6 author: cmdragon ex ...
- opengl在编译的过程中,glad使用
我在编译的过程中,遇到:无法找到 -lglad这个错误.最后才发现对于glad的使用不能用-lglad.因为我们通过glad的在线服务可以得到一些文件,其中glad.c文件我们是需要放在我们的项目下面 ...
- 关于pytorch中@和*的用处
1.@是用来对tensor进行矩阵相乘的: import torch d = 2 n=50 X = torch.randn(n,d) true_w = torch.tensor([[-1.0],[2. ...
- 什么是WebRTC
背景:webrtc web real-time communication 实时通信标准,提供了音视频通话系统的能力. 应用场景: 点对点视频聊天,如 微信视频,等实时视频通话应用. 多人视频会议,企 ...
- 2021CSP复赛游记,总结与回顾
一曲起,一曲落:2021的CSP复赛也走过一个月了. 总而言之,成败只代表过去,过去不代表未来,收获满满,受益匪浅,足矣 今年,是我参加CSP的第四年,回忆当初踏入信息学的大门,跌倒过,受伤过,但从没 ...