我的需求是能实现自适应,且不出现横向滚动条,所以计算出来每列列宽后,把所有列宽加起来,得到total,然后用每列列宽除以total,就能得到每列列宽的长度百分比,比如用width=10%的方式去设置每列宽度,如果想展示完全每列内容,不介意出现横向滚动条,就直接用计算出来的列宽作为列的宽度就可以了,比如width=100 以下是计算...
你可以编写一个方法来根据列的内容动态计算列宽。这个方法需要遍历表格的数据,找到该列中最长的内容,然后根据这个内容的长度来设置列宽。 在el-table-column中使用这个方法: 将自定义的方法作为:width属性的值赋给需要自适应宽度的列。 例如: vue <template> <div> <el-table :data="tableData...
1 打开一个vue文件,添加el-table表格组件,设置表格的内容显示为日期、姓名、地址。如图 2 在表格地址这一列中设置添加width为200,用于设置地址这一列宽度为200px。如图 3 保存vue文件后使用浏览器打开,这时候就可以看到地址这一列显示的宽正好是200px。如图 ...
设置表格组件的min-width和max-width属性,例如:<el-table :data="tableData" :min-width="300" :max-width="800"></el-table>。这将使表格的最小宽度为300px,最大宽度为800px。当表格内容超出最大宽度时,表格会自动出现横向滚动条。 设置列的宽度,例如:<el-table :data="tableData"> <el-table-column...
用列 名column.label区分,设置选择列的最大列宽为100 if(column.label==='选择'&& newWidth >100) { column.width=100} 3.百分比形式的列宽,由于列宽都是准确的数据,所以我决定用网页可见宽度来设置最大宽度。 如果设置了show-overflow-tooltip和align="center",可能会出现达到最大宽度后文字不剧中的情况,所以...
// 2.计算每列内容最大的宽度 + 表格的内间距(依据实际情况而定) return (this.getMaxLength(arr) + 25) + 'px' } } } 别忘记了还得设置CSS <style scoped> .el-table /deep/ th { padding: 0; white-space: nowrap; min-width: fit-content; ...
具体怎么做呢?通过查看渲染后的 DOM 元素发现,el-table 的表头和内容分别用了一个原生table,通过colgroup设置每列的宽度。就从这里入手,col的name属性值和对应的 td的class值是一致的,这样就可以遍历对应列的所有单元格,找出宽度最大的单元格,用它的内容宽度加上一个边距作为该列的宽度。
getOpeColumnWidth 获取操作列里的按钮相加的最大宽度 handleWidth 动态设置操作列的宽度 当然你也可以选择将指令提取成一个文件,注册成全局指令,进行使用 再看其他代码: mounted(){window.addEventListener('resize',this.handleColumnWidthAndDoLayout,true)},beforeDestroy(){window.removeEventListener('resize',this....
可以通过min-width属性来设置el-table-column的最小宽度。以下是一个示例: <template> <el-table :data="tableData"> <el-table-column prop="item_no" label="料号" :min-width="100"></el-table-column> <!-- 其他列 --> </el-table> ...
由于表头和列是分开渲染的,通过el-table 设置fit属性,只能撑开表头,但是没有办法根据列的内容去适应宽度。网上找了一些使用根据表格内容计算表头宽度的文章,记个笔记。 代码逻辑是通过vue 的watch 监控表格的数据data,计算每列的内容和表头的最大宽度,计算的时候把表格内容使用span标签包裹,然后计算span标签的宽度width...