flexColumnWidth (str, arr1, flag = 'max') { // str为该列的字段名(传字符串);tableData为该表格的数据源(传变量); // flag为可选值,可不传该参数,传参时可选'max'或'equal',默认为'max' // flag为'max'则设置列宽适配该列中最长的内容,flag为'equal'则设置列宽适配该列中第一行内容的长度。
<el-table-column prop="address" label="Address" :width="getColumnWidth('address', tableData)"/> </el-table> 三、全局注入 以vue3 + ts 为例 在utils文件夹下新建 el_table.ts ,内容如下: /** * 表格列宽自适应 * @param prop 属性 * @param records 数据 * @param minWidth 最小宽度 *...
方法/步骤 1 打开一个vue文件,添加el-table表格组件,设置表格的内容显示为日期、姓名、地址。如图 2 在表格地址这一列中设置添加width为200,用于设置地址这一列宽度为200px。如图 3 保存vue文件后使用浏览器打开,这时候就可以看到地址这一列显示的宽正好是200px。如图 ...
渲染后的每个单元格有个.cell类,用white-space: nowrap; overflow: auto;设置为不允许换行,内容超出后可滚动,同时设置display: inline-block;以便计算实际内容宽度。这样,最终的宽度可通过.cell元素的scrollWidth属性得到。 function adjustColumnWidth(table) { const colgroup = table.querySelector("colgroup"); co...
el-table的el-table-column如果不指定width的话,会自动设定一个宽度,表格内容会自动换行,对强迫症用户来说非常不友好,为了追求完美用户体验,所以这里需要实现两个效果: 强制表格内容不换行显示 实现表格列宽自适应撑开 【代码实现】 <template> <el-table
* @param {*} tableData tableData 表格数据源(变量) * @param {*} flag 'max'或'equal',默认为'max' * @param {*} flag flag为'max'则设置列宽适配该列中最长的内容,flag为'equal'则设置列宽适配该列中第一行内容的长度 * @return {*}*/functionflexColumnWidth(prop, label, tableData, flag =...
首先,我们需要设置El-table的宽度。由于El-table是一个容器组件,它本身没有固定的宽度,因此我们需要使用一个CSS变量来定义El-table的宽度。我们可以在CSS文件中定义一个名为"$table-container-width"的变量,并将其设置为一个固定的值,例如"1000px"。 接下来,我们需要设置El-table的自适应列宽选项。El-table提供...
由于表头和列是分开渲染的,通过el-table 设置fit属性,只能撑开表头,但是没有办法根据列的内容去适应宽度。网上找了一些使用根据表格内容计算表头宽度的文章,记个笔记。 代码逻辑是通过vue 的watch 监控表格的数据data,计算每列的内容和表头的最大宽度,计算的时候把表格内容使用span标签包裹,然后计算span标签的宽度width...
使用Element table组件时,给列设置百分比宽度无效(width="30%") 解决 用属性min-width="3"代替属性width="30%",且每一列都必须设置 原因 el-table 组件会被 vue 解析成 html, width 设置百分比的值直接被解析去掉百分号变成 px 了。设置成 min-width 之后,width 的值就被计算成 (当前值 / 所有列值和)的...
具体实现步骤如下:1. 通过 DOM 元素观察,发现 el-table 的表头和内容分别用了一个原生 table,并通过 colgroup 设置每列的宽度。利用这一结构,可以通过遍历对应的单元格元素,找出宽度最大的单元格,然后将它的内容宽度加上一定的边距,作为该列的最终宽度。2. 计算内容宽度的关键在于正确处理内容的...