el-table-column 内容不自动换行的解决方法


Posted in Vue.js onAugust 14, 2022

场景

使用ElementUI中的Table 表格时,如果列内容超过列宽,会默认换行,如下

el-table-column 内容不自动换行的解决方法

这样看起来不美观,还有可能引起其它样式问题。那么如何解决呢?

方式一

使用Table组件自带的show-overflow-tooltip属性

参数说明类型可选值默认值show-overflow-tooltip当内容过长被隐藏时显示 tooltipBoolean—false

添加该属性之后,如果内容超出列宽,超长部分会默认省略。当鼠标滑过该内容时,会弹出Tip提示

<!--示例-->
<el-table-column
     prop="departName"
     label="部门"
     show-overflow-tooltip
       >
</el-table-column>

el-table-column 内容不自动换行的解决方法

注:该属性谨慎使用,如果多列使用且内容较多时,会影响页面性能

方式二

计算每列最大宽度,使内容不换行;配合设置最大字符长度,可以解决大多数场景问题。接下来展示最基础的列宽计算方式

示例如下

/**
 * 使用span标签包裹内容,然后计算span的宽度 width: px
 * @param valArr
 */
 function getTextWidth(str) {
    let padding = 0;//单元格左右padding距离
    let width = 0;
    let span = document.createElement('span');
    span.innerText = str;
    span.className = 'getwidth';
    document.querySelector('body').appendChild(span);
    // 这里可以获取当前单元格的font-size 以及 内容的中英文、字母等  做更精确的计算
    width = document.querySelector('.getwidth').offsetWidth+padding;
    document.querySelector('.getwidth').remove();
    return width;
}

/**
* 遍历列的所有内容,获取最宽一列的宽度
* @param {Array} arr 需要计算的数据
* @param {Number} minwidth 列最小宽度
*/
function getMaxLength (arr,minwidth=60) {
    return arr.reduce((acc, item) => {
        if (item) {
            let calcLen = getTextWidth(item);
            if (acc < calcLen) {
                acc = calcLen;
            }
        }
        return acc<minwidth?minwidth:acc;
    }, 0)
}

/**
* @description 计算列表列宽(把内容撑开)
* @param {Array} columns 列的数组
* @param {Array} tableArr 列表的数组
* */
function calcColumnsWidth(columns, tableArr) {
    columns.forEach((item) => {
        const arr = tableArr.map((x) => x[item.props]);
        item.width = getMaxLength(arr);
        arr.push(item.label); // 把每列的表头也加进去算
    });
    return columns;
}

<!--获取列表数据之后,计算每列最大宽度-->
let res = await this.axios.post('/api/xxx/xxxx'); 
if(res.data.data.length > 0){
    const columns = calcColumnsWidth(this.tableHead, res.data.data);
    this.tableHead = columns;
}

效果如下:列宽自动撑开,列表宽度不够时,底部会出现滚动轴。

el-table-column 内容不自动换行的解决方法

 到此这篇关于el-table-column 内容不自动换行的解决方法的文章就介绍到这了,更多相关el-table-column 不自动换行内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
vue+vant 上传图片需要注意的地方
Jan 03 Vue.js
vuex的使用和简易实现
Jan 07 Vue.js
解决vue使用vant轮播组件swipe + flex时文字抖动问题
Jan 07 Vue.js
vue动态设置路由权限的主要思路
Jan 13 Vue.js
Vue常用API、高级API的相关总结
Feb 02 Vue.js
Vue实现圆环进度条的示例
Feb 06 Vue.js
vue前端和Django后端如何查询一定时间段内的数据
Feb 28 Vue.js
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
May 18 Vue.js
详解vue身份认证管理和租户管理
May 25 Vue.js
Vue3中的Refs和Ref详情
Nov 11 Vue.js
vue特效之翻牌动画
Apr 20 Vue.js
vue el-table实现递归嵌套的示例代码
Aug 14 Vue.js
vue el-table实现递归嵌套的示例代码
Aug 14 #Vue.js
vue实现input输入模糊查询的三种方式
Aug 14 #Vue.js
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
Aug 05 #Vue.js
Vue深入理解插槽slot的使用
Aug 05 #Vue.js
vue3 自定义图片放大器效果的示例代码
Jul 23 #Vue.js
vue递归实现树形组件
Jul 15 #Vue.js
VUE递归树形实现多级列表
Jul 15 #Vue.js
You might like
PHP输出控制功能在简繁体转换中的应用
2006/10/09 PHP
页面乱码问题的根源及其分析
2013/08/09 PHP
改写函数实现PHP二维/三维数组转字符串
2013/09/13 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
PHP实现字符串的全排列详解
2019/04/24 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
JavaScript 模拟用户单击事件
2009/12/31 Javascript
javascript五图轮播切换实用版
2012/08/17 Javascript
js实现俄罗斯方块小游戏分享
2014/01/31 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
2018/01/17 Javascript
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
Vue之mixin全局的用法详解
2018/08/22 Javascript
angular.js实现列表orderby排序的方法
2018/10/02 Javascript
详解微信小程序获取当前时间及日期的方法
2019/04/28 Javascript
[01:09:16]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第一场 1月25日
2021/03/11 DOTA
python根据时间生成mongodb的ObjectId的方法
2015/03/13 Python
Python闭包之返回函数的函数用法示例
2018/01/27 Python
python爬虫的一个常见简单js反爬详解
2019/07/09 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
2019/08/27 Python
PyTorch中反卷积的用法详解
2019/12/30 Python
Pyspark获取并处理RDD数据代码实例
2020/03/27 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
2020/12/28 Python
总经理司机职责
2014/02/02 职场文书
推普周活动总结
2014/08/28 职场文书
韩语专业职业生涯规划范文:成功之路就在我们脚下
2014/09/11 职场文书
转让协议书
2015/01/27 职场文书
班主任寄语2015
2015/02/26 职场文书
花田少年史观后感
2015/06/16 职场文书
大学生暑期实践报告
2015/07/13 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python