ElementUi使用el-tooltip实现超出部分显示省略号
效果前:
效果后:
创建myTooltio.vue组件
<template> <div class="tooltip-container"> <el-tooltip class="my-tooltip" :disabled="showTooltip" :content="text"> <p ref="tooltipBox" class="text-box"> <span ref="tooltipItem" class="">{{text}}</span> </p> </el-tooltip> </div> </template> <script> export default { name: "myTooltip", props: { text: { type: String, default: () => "" } }, data(){ return { showTooltip: true } }, watch:{ text:{ handler(){ this.$nextTick(()=>this.checkWidth()); }, immediate: true } }, methods:{ checkWidth(){ const boxWidth = this.$refs['tooltipBox'].offsetWidth; const itemWidth = this.$refs['tooltipItem'].offsetWidth; this.showTooltip = boxWidth > itemWidth } } }; </script> <style scoped lang="less"> .tooltip-container{ width:100%; .text-box{ overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } } </style>
lang=“less” 可以敲层级关系的样式
scoped 使style内的样式只作用于当前的界面
引入myTooltio.vue组件
在需要的*.vue中引入
<div class="test"> <my-tooltip :text="2132131231231231231231221"></my-tooltip> </div> <script> import myTooltip from "@/components/tools/myTooltip"; export default { name: "TestItem", components: { myTooltip }, } <style scoped> /deep/ .test{ width:180px; height: 40px; /*border:1px solid #345123;*/ cursor:pointer; } </style>
至此刷新页面即可。
若报错,提示缺少less
和less-loader
模块,需要安装一下。
cmd打开命令窗口进入到当前项目路径下,分别输出以下命令安装:
# 保险起见,我们还是安装4+比较好 npm install less@4 --save-dev # less-loader的版本号要搭配webpack的版本号来选择,webpack@4+可以选择的less-loader版本是5~7 npm install less-loader@7 --save-dev
无论风雨,和自己一决胜负吧
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律