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;
}
相关推荐
环境栈笔记6 分钟前
高性价比指纹浏览器推荐与选型:如何对照价格和实际可用功能筛选候选
前端·人工智能·后端·自动化
hyf32663320 分钟前
泛程序哪有想象中难!小白跟着走一遍就全懂
前端·爬虫·搜索引擎·seo·蜘蛛池
码农学院32 分钟前
React公众号开发:母婴用品会员积分体系技术方案
前端·react.js·前端框架
路光.1 小时前
Vue2升级Vue3处理原 UMD/CommonJS 打包文件,不是标准 ESM
前端·javascript·vue.js·vue3
黄华SJ520it1 小时前
门店预约系统开发:提升服务行业数字化转型
前端·数据库·系统开发
一只月月鸟呀2 小时前
移动端tap与click的区别 && 点透事件
开发语言·前端·javascript
雪隐2 小时前
AI股票小助手10-我用代码管住自己的手:一个普通人的市场观察笔记
前端·人工智能·后端
KaMeidebaby3 小时前
卡梅德生物技术快报|抗体筛选:抗体筛选中的噬菌体展示四参数调优——从流程设计到数据验证
开发语言·前端·javascript
甲维斯3 小时前
Opus5.0首测,瘫坐沙发!效果,时间,token皆无敌!
前端·人工智能
LVZ3 小时前
Skill + PVM 绝了,AI 直接帮你搞定环境问题了
前端