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 相关文章推荐
详解Vue3 Teleport 的实践及原理
Dec 02 Vue.js
vue+elementUI动态增加表单项并添加验证的代码详解
Dec 17 Vue.js
vue 在服务器端直接修改请求的接口地址
Dec 19 Vue.js
Vue实现小购物车功能
Dec 21 Vue.js
基于vuex实现购物车功能
Jan 10 Vue.js
详解template标签用法(含vue中的用法总结)
Jan 12 Vue.js
Vue全家桶入门基础教程
May 14 Vue.js
vue使用wavesurfer.js解决音频可视化播放问题
Apr 04 Vue.js
vue动态绑定style样式
Apr 20 Vue.js
vue实现省市区联动 element-china-area-data插件
Apr 22 Vue.js
如何vue使用el-table遍历循环表头和表体数据
Apr 26 Vue.js
vue-cli3.x配置全局的scss的时候报错问题及解决
Apr 30 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 类型转换函数intval
2009/06/20 PHP
php文件包含目录配置open_basedir的使用与性能详解
2017/04/03 PHP
PHP工厂模式的日常使用
2019/03/20 PHP
tp5(thinkPHP5框架)使用DB实现批量删除功能示例
2019/05/28 PHP
javascript 一段左右两边随屏滚动的代码
2009/06/18 Javascript
javascript读写json示例
2014/04/11 Javascript
JS小游戏之象棋暗棋源码详解
2014/09/25 Javascript
JS实现模拟风力的雪花飘落效果
2015/05/13 Javascript
浅谈JS继承_借用构造函数 &amp; 组合式继承
2016/08/16 Javascript
浅谈js控制li标签排序问题 js调用php函数的方法
2016/10/16 Javascript
微信小程序 HTTPS报错整理常见问题及解决方案
2016/12/14 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
2017/04/07 Javascript
关于webpack2和模块打包的新手指南(小结)
2017/08/07 Javascript
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
2017/09/18 NodeJs
PHP实现基于Redis的MessageQueue队列封装操作示例
2019/02/02 Javascript
微信小程序中限制激励式视频广告位显示次数(实现思路)
2019/12/06 Javascript
用Python将动态GIF图片倒放播放的方法
2016/11/02 Python
Python开发的HTTP库requests详解
2017/08/29 Python
python统计多维数组的行数和列数实例
2018/06/23 Python
mac系统下Redis安装和使用步骤详解
2019/07/09 Python
Python装饰器使用你可能不知道的几种姿势
2019/10/25 Python
pytorch:torch.mm()和torch.matmul()的使用
2019/12/27 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
Python通过正则库爬取淘宝商品信息代码实例
2020/03/02 Python
美国肌肉和力量商店:Muscle & Strength
2019/06/22 全球购物
细节决定成败演讲稿
2014/05/12 职场文书
高效课堂标语
2014/06/26 职场文书
无犯罪记录证明
2014/09/19 职场文书
高校自主招生校长推荐信
2015/03/23 职场文书
2015年少先队活动总结
2015/03/25 职场文书
大学生军训心得体会5篇
2019/08/15 职场文书
Python爬虫进阶之Beautiful Soup库详解
2021/04/29 Python
pytorch 如何使用amp进行混合精度训练
2021/05/24 Python
React Native项目框架搭建的一些心得体会
2021/05/28 Javascript
Redis 持久化 RDB 与 AOF的执行过程
2021/11/07 Redis
Python 第三方库 openpyxl 的安装过程
2022/12/24 Python