el-table根据屏幕大小适配最大高度
问题描述
使用elementUI(v2.13.2)开发过程中使用el-table渲染列表,需要控制table的最大高度,达到溢出滚动的效果。
问题解决
参考element文档,可以使用 max-height
属性(Table 的最大高度。合法的值为数字或者单位为 px 的高度),于是可以设置一个具体的值,eg:max-height="360px" 或max-height="360",但是这样并不能解决屏幕适配的问题。那就考虑在dom渲染完成后,计算浏览器窗口的可见高度 减去 固定的元素高度,剩下的就是table的最大高度了。
- 给el-table设置max-height,maxHeight 默认为0
<el-table
:data="tableData"
:max-height="maxHeight"
>
- 方法一:在mounted阶段设置计算maxheight的值
mounted() {
this.$nextTick(() => {
// window.innerHeight 浏览器窗口的可见高度,下面的 200 是除了table最大高度的剩余空间。
this.maxHeight = window.innerHeight - 200
})
},
- 方法二:在接口获取数据后直接计算
methods: {
getTableData() {
getList().then(res => {
this.tableData = res.data
this.maxHeight = window.innerHeight - 200
})
}
}
备注
至于在mounted中为啥用 nextTick,因为table数据渲染过程中dom会重新计算高度,mounted中执行运算的时候接口的数据可能还没有返回呢。
这个maxHeight的计算可以在请求接口获取数据赋值 tableData 后计算,此时可以不用nextTick也能达到一样效果。
分类:
element ui
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
2021-04-11 Failed to load config "lugin:vue/essenti al" to extend from.
2019-04-11 es6实现类的多重继承