element-ui 2 el-tree 内容超长滚动条不显示问题

elementUI用到tree 树形组件时碰到tree节点过多需要横向滚动显示,但是组件文档上没有上没有正常显示,具体解决方案请往下看。

如图所示,需要显示纵向和横向滚动条:

1、在tree外包一层div,并设置父元素的高,这样才不会出现横向滚动条在树的最低端,需要滚动竖向滚动条才能看到。

2、定义tree的样式 "tree-container"

3、**【可选】**重写tree样式(这个可以全局或是使用v-deep)

4、**【可选】**防止树多出了莫名的高度设置以下属性

::v-deep{

.el-tree-node > .el-tree-node__children {

overflow: visible;

}

}

5、具体实现代码

复制代码
<template>
<div class="tree-container">
<el-tree
      class="el-tree-custom"
      :data="dataTree"
      :props="treeProps"
      :expand-on-click-node="false"
      :filter-node-method="filterNode"
      ref="tree"
      node-key="id"
      default-expand-all
      highlight-current
      @node-click="handleNodeClick"
  />
</div>
</template>

<script>
export default{
    data(){
        return{
    dataTree: [{
          label: '一级 1',
          children: [{
            label: '二级 1-1',
            children: [{
              label: '三级 1-1-1'
            }]
          }]
        }, {
          label: '一级 2',
          children: [{
            label: '二级 2-1',
            children: [{
              label: '三级 2-1-1'
            }]
          }, {
            label: '二级 2-2',
            children: [{
              label: '三级 2-2-1'
            }]
          }]
        }, {
          label: '一级 3',
          children: [{
            label: '二级 3-1',
            children: [{
              label: '三级 3-1-1',
               children: [{
                label: '四级 4-1-1'
            }],
            label: '三级 100003-1000001-1011111',
            }]
          }, {
            label: '二级 3-2',
            children: [{
              label: '三级 3-2-1'
            }]
          }]
        }, {
          label: '一级 3',
          children: [{
            label: '二级 3-1',
            children: [{
              label: '三级 3-1-1',
               children: [{
                label: '四级 4-1-1'
            }],
            label: '三级 100003-1000001-1011111',
            }]
          }, {
            label: '二级 3-2',
            children: [{
              label: '三级 3-2-1'
            }]
          }]
        }, {
          label: '一级 3',
          children: [{
            label: '二级 3-1',
            children: [{
              label: '三级 3-1-1',
               children: [{
                label: '四级 4-1-1'
            }],
            label: '三级 100003-1000001-1011111',
            }]
          }, {
            label: '二级 3-2',
            children: [{
              label: '三级 3-2-1'
            }]
          }]
        }, {
          label: '一级 3',
          children: [{
            label: '二级 3-1',
            children: [{
              label: '三级 3-1-1',
               children: [{
                label: '四级 4-1-1'
            }],
            label: '三级 100003-1000001-1011111',
            }]
          }, {
            label: '二级 3-2',
            children: [{
              label: '三级 3-2-1'
            }]
          }]
        }, {
          label: '一级 3',
          children: [{
            label: '二级 3-1',
            children: [{
              label: '三级 3-1-1',
               children: [{
                label: '四级 4-1-1'
            }],
            label: '三级 100003-1000001-1011111',
            }]
          }, {
            label: '二级 3-2',
            children: [{
              label: '三级 3-2-1'
            }]
          }]
        }, {
          label: '一级 3',
          children: [{
            label: '二级 3-1',
            children: [{
              label: '三级 3-1-1',
               children: [{
                label: '四级 4-1-1'
            }],
            label: '三级 100003-1000001-1011111',
            }]
          }, {
            label: '二级 3-2',
            children: [{
              label: '三级 3-2-1'
            }]
          }]
        }],

        treeProps:{
          children: 'children',
          label: 'label'
        }
        }
    }
}
</script>

<style scoped lang="scss">
.tree-container {
  /*显示父容器滚动条*/
  overflow-x: auto;
  /*显示父容器滚动条*/
  max-height: 700px;
   /*显示父容器滚动条*/
  .el-tree-custom {
    display: inline-block;
    /* 防止换行 */
    white-space: nowrap;
    /* 防止换行 */
    overflow-x: auto;
  }
}
</style>

这里如果使用v-deep 修改样式,横向滚动条可能不会固定到底部分,如

复制代码
 /*(1)*/
 ::v-deep .el-tree-node.is-expanded > .el-tree-node__children {
    display: inline;
 }
 /**(2)*/
::v-deep .el-tree-node > .el-tree-node__content {
  display: block !important;
}
/*(3)*/
::v-deep .el-tree-node > .el-tree-node__children {
  overflow: visible;
}
/*(4)*/
::v-deep .el-tree > .el-tree-node{
  min-width:100%;
  display: inline-block;
}
相关推荐
zhangxingchao20 分钟前
多 Agent 架构到底怎么选?从 Claude Agent Teams、Cognition/Devin 到工程落地原则
前端·人工智能·后端
IT_陈寒30 分钟前
SpringBoot那个自动配置的坑,害我排查到凌晨三点
前端·人工智能·后端
Honor丶Onlyou31 分钟前
VS Code 右键菜单修复记录
前端
PILIPALAPENG38 分钟前
Python 语法速成指南:前端开发者视角(JS 类比版)
前端·人工智能·python
JYeontu41 分钟前
轮播图不够惊艳?试下这个立体卡片轮播图
前端·javascript·css
张就是我10659242 分钟前
从前端角度理解 CVE-2026-31431
前端
AGoodrMe43 分钟前
swift基础之async/await
前端·ios
irving同学462381 小时前
从零搭建生产级 RAG:Embedding、Chunking、Hybrid Search 与 Reranker
前端·后端
卡卡军1 小时前
vue3-sketch-ruler v3 升级详解:从 Vue 组件到跨框架标尺引擎
前端
还有多久拿退休金1 小时前
让看不见的 AI 动手画画——我意外造出了一个"绘图 Agent"
前端