elementui——el-tabs固定高度&内容超出高度可滚动

这篇博客主要介绍了如何在ElementUI的el-tabs组件中实现固定高度,并确保内容超出时可以滚动。通过设置外部容器.el-tabs--card和每个tab内容容器.el-tab-pane的高度,可以达到屏幕高度适应并实现滚动效果。
摘要由CSDN通过智能技术生成

在这里插入图片描述

.el-tabs--card {
  height: calc(100vh - 110px);
  /* overflow-y: auto; */
}
.el-tab-pane {
  height: calc(100vh - 110px);
  overflow-y: auto;
}

!!!注意
.el-tabs–card是外层
.el-tab-pane是每一个tabs内容的容器,这这里设置的高度才是跟屏幕高度一样的

在这里插入图片描述

可以使用element-ui中的Tabs组件,该组件支持滚动和可关闭标签页,并且可以通过设置属性来实现箭头切换上一页下一页的功能。 具体实现步骤如下: 1. 安装element-ui组件库 ``` npm install element-ui -S ``` 2. 在Vue项目中引入element-ui组件库 ```javascript import Vue from 'vue'; import ElementUI from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; Vue.use(ElementUI); ``` 3. 在Vue组件中使用Tabs组件 ```html <template> <div class="tab-container"> <el-tabs v-model="activeTab" :tab-position="tabPosition" type="border-card" closable @tab-remove="handleTabRemove"> <el-tab-pane v-for="(tab, index) in tabs" :key="tab.name" :label="tab.title" :name="tab.name"> {{ tab.content }} </el-tab-pane> </el-tabs> </div> </template> <script> export default { data() { return { activeTab: '', tabPosition: 'top', tabs: [ { name: 'tab1', title: '标签页1', content: '标签页1的内容' }, { name: 'tab2', title: '标签页2', content: '标签页2的内容' }, { name: 'tab3', title: '标签页3', content: '标签页3的内容' }, { name: 'tab4', title: '标签页4', content: '标签页4的内容' }, { name: 'tab5', title: '标签页5', content: '标签页5的内容' }, { name: 'tab6', title: '标签页6', content: '标签页6的内容' }, { name: 'tab7', title: '标签页7', content: '标签页7的内容' }, { name: 'tab8', title: '标签页8', content: '标签页8的内容' }, { name: 'tab9', title: '标签页9', content: '标签页9的内容' }, { name: 'tab10', title: '标签页10', content: '标签页10的内容' }, { name: 'tab11', title: '标签页11', content: '标签页11的内容' }, { name: 'tab12', title: '标签页12', content: '标签页12的内容' }, { name: 'tab13', title: '标签页13', content: '标签页13的内容' }, { name: 'tab14', title: '标签页14', content: '标签页14的内容' }, { name: 'tab15', title: '标签页15', content: '标签页15的内容' }, ], }; }, methods: { handleTabRemove(tab) { const index = this.tabs.findIndex((t) => t.name === tab.name); this.tabs.splice(index, 1); }, }, }; </script> <style> .tab-container { width: 400px; overflow: hidden; } .el-tabs__nav-scroll { display: flex !important; justify-content: space-between; align-items: center; } .el-tabs__nav-wrap { display: flex !important; } </style> ``` 4. 自定义样式实现箭头切换上一页下一页的功能 ```css .tab-container { width: 400px; overflow: hidden; } .el-tabs__nav-scroll { display: flex !important; justify-content: space-between; align-items: center; } .el-tabs__nav-wrap { display: flex !important; } .el-tabs__nav-prev, .el-tabs__nav-next { width: 20px; height: 20px; border-radius: 50%; font-size: 12px; text-align: center; line-height: 20px; cursor: pointer; background-color: #eee; } .el-tabs__nav-prev:hover, .el-tabs__nav-next:hover { background-color: #ddd; } .el-tabs__nav-prev.disabled, .el-tabs__nav-next.disabled { cursor: not-allowed; background-color: #ccc; } ``` 在上面的代码中,我们通过设置`.el-tabs__nav-scroll`和`.el-tabs__nav-wrap`的样式,将标签页的导航栏设置为横向布局,并且通过在左侧和右侧添加箭头来实现切换上一页下一页的功能。同时,通过监听`@tab-remove`事件,我们可以在用户关闭标签页时动态更新`this.tabs`数组中的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值