ElementUI 实现el-table 列宽自适应

一、概述

Element UI 是 PC 端比较流行的 Vue.js UI 框架,它的组件库基本能满足大部分常见的业务需求。但有时候会有一些定制性比较高的需求,组件本身可能没办法满足。最近在项目里就碰到了。

很多页面都需要用到表格组件el-table。如果没有给el-table-column指定宽度,默认情况下会平均分配给剩余的列。在列数比较多的情况,如果el-table宽度限定在容器内,单元格里的内容就会换行。强制不换行,内容要么在单元格内滚动,要么就会溢出或被截断。

产品想要的效果是:内容保持单行显示,列间距保持一致,表格超出容器允许水平滚动。el-table-column是支持设置固定宽度的,在内容宽度可预知的情况下,也能满足这个需求。问题就在于如何让列宽动态适应内容的宽度。在官方文档也没找到这样的选项,应该是组件本身不支持。

二、技术实现

通过插件v-fit-columns即可实现,列宽自适应。

安装插件

npm install v-fit-columns --save

引入

import Vue from 'vue';
import Plugin from 'v-fit-columns';
Vue.use(Plugin);

使用示例:


  
  
  

在el-table后面加v-fit-columns即可,其他的都不需要改。

先来看一下原始的table效果:

ElementUI 实现el-table 列宽自适应_第1张图片

发现内容过多,已经开始换行了。

下面使用v-fit-columns

test.vue





View Code

刷新页面,效果如下:

ElementUI 实现el-table 列宽自适应_第2张图片

可以看到,table下面出现了一个滚动条,可以向左向右拉动。

本文参考链接:

https://www.cnblogs.com/lzkwin/p/13575805.html

你可能感兴趣的:(前端,html,javascript,html,html5)