vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > element-ui表格自适应高度

element-ui表格如何自适应高度效果示例

作者:柠檬加栤

这篇文章主要给大家介绍了关于element-ui表格如何自适应高度的相关资料,Element UI的Table组件默认情况下是没有自适应高度的,文中给大家介绍了解决的办法,需要的朋友可以参考下

1、el-table增加max-height属性

<el-table :max-height="tableHeight" ref="queryForm">

2、data增加tableHeight变量

data() {
  return {
      // 表格高度
      tableHeight: 200,
  }
};

3、mounted获取计算高度,每次需要刷新页面才能自适应

mounted() {
  this.$nextTick(() => {
    // window.innerHeight 浏览器窗口的可见高度,下面的 220 是除了table最大高度的剩余空间。
    let height = window.innerHeight - this.$refs.queryForm.$el.offsetHeight - 220;
    this.tableHeight = height;
  })
},

虽然这时候,已经可以根据窗体大小,高度动态变化,但是,还要每次刷新才行……

所以,我们需要加一个监听器即可,监听窗体大小变化,一旦变化就执行方法重新设定tableHeight

methods: {
    getHeight() {
      this.$nextTick(() => {
        // window.innerHeight 浏览器窗口的可见高度,下面的 220 是除了table最大高度的剩余空间。
        console.log(1111,window.innerHeight);
        let height = window.innerHeight - this.$refs.queryForm.$el.offsetHeight - 220;
        this.tableHeight = height;
      })
    }
  },
  created() {
    window.addEventListener('resize', this.getHeight)
  },
 //可有可无
destroyed () {
    window.removeEventListener('resize', this.getHeight)
  }

这里还有个需要注意的地方,就是修改下el-table的css,否则table会有很多留白,看起来体验不是很好

这里使用了::v-deep ,否则我们是修改不了 element自带的样式。

::v-deep .el-table {
  .el-table__body {
    height: 100%;
  }
}

自此,就能达到table高度自适应的效果啦~~,拖拽可视窗口高度时,表格在实时更新数据会出现抖动

补充知识:element ui table组件高度笔记本和台式显示不同

这种情况可能是因为笔记本和台式的分辨率不同,导致元素的大小显示不同。您可以通过设置表格组件的高度为固定值或百分比来解决此问题,以适应不同的设备。

例如,您可以使用以下 CSS 样式来设置表格组件的高度为 500 像素:

.el-table {
  height: 500px;
}

或者使用以下 CSS 样式将表格组件的高度设置为页面高度的 80%:

.el-table {
  height: 80vh;
}

这样,无论在笔记本还是台式电脑上,表格组件都会以相同的高度显示。

总结

到此这篇关于element-ui表格如何自适应高度的文章就介绍到这了,更多相关element-ui表格自适应高度内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文