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模板编译原理
Nov 19 Vue.js
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
Dec 04 Vue.js
详解Vue中的自定义指令
Dec 07 Vue.js
梳理一下vue中的生命周期
Dec 30 Vue.js
vue+vant 上传图片需要注意的地方
Jan 03 Vue.js
vue中父子组件的参数传递和应用示例
Jan 04 Vue.js
vue 递归组件的简单使用示例
Jan 14 Vue.js
vue实现禁止浏览器记住密码功能的示例代码
Feb 03 Vue.js
详解Vue.js 可拖放文本框组件的使用
Mar 03 Vue.js
vue引入Excel表格插件的方法
Apr 28 Vue.js
详解vue身份认证管理和租户管理
May 25 Vue.js
Vue ECharts实现机舱座位选择展示功能
May 15 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利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
2014/01/07 PHP
使用openssl实现rsa非对称加密算法示例
2014/01/24 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
2014/04/09 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
2016/03/21 PHP
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
js跳转页面方法实现汇总
2014/02/11 Javascript
Javascript中设置默认参数值示例
2014/09/11 Javascript
jQuery异步获取json数据方法汇总
2014/12/22 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
jQuery基于cookie实现换肤功能实例
2017/10/14 jQuery
基于jQuery Ajax实现下拉框无刷新联动
2017/12/06 jQuery
实现jquery放大镜的两种方法
2018/02/22 jQuery
node前端模板引擎Jade之标签的基本写法
2018/05/11 Javascript
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
微信小程序实现复选框效果
2018/12/28 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
Python处理字符串之isspace()方法的使用
2015/05/19 Python
Python素数检测实例分析
2015/06/15 Python
浅谈python多线程和队列管理shell程序
2015/08/04 Python
Python实现多并发访问网站功能示例
2017/06/19 Python
Python学习教程之常用的内置函数大全
2017/07/14 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
python3 tkinter实现添加图片和文本
2019/11/26 Python
Pycharm Git 设置方法
2020/09/15 Python
Anaconda的安装与虚拟环境建立
2020/11/18 Python
美国百年历史早餐食品供应商:Wolferman’s
2017/01/18 全球购物
应届生会计求职信
2013/11/11 职场文书
电厂厂长岗位职责
2014/01/02 职场文书
公路绿化方案
2014/05/12 职场文书
学习党的群众路线教育实践活动心得体会范文
2014/11/03 职场文书
简历自我评价模板
2015/03/11 职场文书
Python的flask接收前台的ajax的post数据和get数据的方法
2021/04/12 Python
Python如何使用循环结构和分支结构
2022/04/13 Python
在ubuntu下安装go开发环境的全过程
2022/08/05 Golang