大纲
问题原因
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| <template> <div class="el-table-demo"> <div class="demo-header"></div> <div class="demo-table"> <div class="demo-table-header"></div> <el-table :data="tableData" height="calc(100% - 30px)" style="width: 100%"> <el-table-column prop="date" label="日期" width="180"></el-table-column> <el-table-column prop="name" label="姓名" width="180"></el-table-column> <el-table-column prop="address" label="地址"></el-table-column> </el-table> </div> <div class="demo-footer"></div> </div> </template>
<script> import { tableDataDemo } from './data/tableData';
export default { name: 'ElTableDemo', data() { return { tableData: [], } }, mounted() { this.init(); }, methods: { init() { setTimeout(() => { this.tableData = tableDataDemo; }, 1000); }, }, } </script>
<style> .el-table-demo { height: 700px; display: flex; flex-direction: column; } .demo-header { height: 260px; background-color: darkgray; }
.demo-table-header { height: 30px; background-color: brown; } .demo-table { flex: 1; outline: 2px solid green; }
.demo-footer { height: 60px; background-color: grey; } </style>
|
div.demo-table 设置为flex: 1,并且在此div中,包含两部分,div.demo-table-header 和 el-table,其中 div.demo-table-header 设置高度为30px,若 el-table 设置 height 属性为 100%,则 el-table 渲染的时候,会无限制的自动增高。
解决方案
1
| <el-table :data="tableData" height="calc(100% - 30px)" style="width: 100%">
|
将 el-table 的高度设置为:100% - 30px,即:容器总高度 - div.demo-table-header高度。
回顾反思
此类现象在开发中遇到过几次,每次都不太清楚问题的根原在那里。只是反复修改样式尝试解决,不求深入刨析原因。改进方案:遇到问题先求快速度解决,但应把需要深究的问题点记录到TODO中,待合适的时间将问题研究透彻,并总结要点。
Original link: https://www.smartliu.top:2443/blog/2023/09/12/解决el-table无限增高问题/
Copyright Notice: 转载请注明出处.