当前位置: 首页 > news >正文

后台管理系统中常见的三栏布局总结:使用element ui构建

使用的element ui中el-menu
在这里插入图片描述

  • vue2 使用 el-menu构建的列表布局: 列表可以折叠展开
<template><div class="home"><header><el-button type="primary" @click="handleClick">切换</el-button></header><div class="content"><el-scrollbar class="sidebar"><el-menuclass="menubox":collapse="this.$store.state.isCollapse"background-color="#25D083":class="{ collapse: this.$store.state.isCollapse }"><!-- 注意:这里是有扩展的子列表 , title放名称, el-men-item放的是具体内容 ! --><el-submenu index="1"><template slot="title"><i class="el-icon-location icon"></i><span slot="title">导航一</span></template><el-menu-item index="1-4-1"><i class="el-icon-location icon"></i><span>选项1</span></el-menu-item><el-menu-item index="1-4-1"><i class="el-icon-location icon"></i><span>选项2</span></el-menu-item></el-submenu><el-menu-itemindex="2"><i class="el-icon-menu icon"></i><span slot="title">导航二</span></el-menu-item><el-menu-item index="3"><i class="el-icon-document icon"></i><span slot="title">导航三</span></el-menu-item><el-menu-item index="4"><i class="el-icon-setting icon"></i><span slot="title">导航四</span></el-menu-item></el-menu></el-scrollbar><div class="mainbox"></div></div></div>
</template><script>
// @ is an alias to /srcexport default {name: "HomeView",data() {return {isCollapse: true,};},methods: {handleClick() {this.$store.dispatch("change");},},
};
</script>
<style lang="scss">
$topHeight: 60px;
$minWidth: 50px;
$maxWidth: 160px;
.border {border: 1px solid blue;
}
.home {box-sizing: border-box;overflow: hidden;height: 100vh;header {height: $topHeight;line-height: $topHeight;background: pink;}.content {display: flex;height: calc(100vh - $topHeight);// 侧边滚动条.sidebar {height: 100%;background: #25d083;// 设置最大高度,当高度超出时候滚动.menubox {width: $maxWidth;max-height: calc(100vh - $topHeight);transition: all 0.3s; // 设置过渡效果// 自定义修改el-menu的布局, 标题对应关系.el-submenu__title 和 el-menu-item.el-submenu > .el-submenu__title,.el-menu-item {margin: 20px auto;display: flex;flex-direction: column;justify-content: center;align-items: center;height: 70px;  // 默认的高度是56px, line-height也是56px, 根据需要修改line-height: 40px !important; .icon {font-size: 25px;}span {font-size: 14px;}}// 折叠后,el-menu-item的图标距离左边很远,发现是padding导致的,要!important.el-menu-item {.el-tooltip {padding: 0 !important;}}// 当el-menu折叠的时候&.collapse {width: $minWidth;}}}.mainbox {flex: 1;background: rgb(217, 236, 171);}}
}</style>

涉及到的知识点整理

  1. el-scrollbar 是element ui中的内置组件,没有官方文档。

    • 使用场景: 当只需要某一部分高度超出滚动,而不影响整体的布局时,将该部分用el-scrollbar包裹即可,一般要设置这部分的最大高度。
      <el-scrollbar><box style="max-height: 200px"> </box>
      </el-scrollbar>
      // 有时可能有横向滚动条/* 隐藏横向滚动条 */
      .el-scrollbar__wrap{overflow-x: hidden;
      }
      
  2. 将控制折叠展开的变量放在store中,防止跨组件通信比较麻烦

  3. 修改el-submenu 和 el-menu-item的样式(css基础不好,这块整理了好久才明白):自定义修改el-menu的布局, 标题对应关系.el-submenu__title 和 el-menu-item (牢记这两个位置)

    • 问题: 折叠后,发现自定义的宽度导致图标并没有居中
    • 解决方法:!important
        .el-menu-item {.el-tooltip {padding: 0 !important;}
      }
      
  4. 小建议: 可以使用scss先定义好 变量(侧边栏)的宽度,如200 -> 60, 在最外层加过渡效果,视觉更友好

http://www.lryc.cn/news/99946.html

相关文章:

  • SpringCloud学习路线(10)——分布式搜索ElasticSeach基础
  • CSS翻转DIV展示顺序
  • python 源码中 PyId_stdout 如何定义的
  • Mybatis映射关系mybatis核心配置文件
  • Mybatis中limit用法与分页查询
  • libcomposite: Unknown symbol config_group_init (err 0)
  • Spring Tool Suite 4
  • 带你读论文第三期:微软研究员、北大博士陈琪,荣获NeurIPS杰出论文奖
  • 农业中的计算机视觉 2023
  • 掌握三个基础平面构成法则 优漫动游
  • 叶工好容5-日志与监控
  • Dubbo 指定调用固定ip+port dubbo调用指定服务 dubbo调用不随机 dubbo自定义调用服务 dubbo点对点通信 dubbo指定ip
  • BCNet论文精读
  • PHP8的注释-PHP8知识详解
  • 优化企业集成架构:iPaaS集成平台助力数字化转型
  • 前端存储之sessionStorage和localStorage
  • 上海亚商投顾:沪指放量大涨1.84% 证券股掀涨停潮
  • 微服务划分的原则
  • 作业 - 3
  • MTK联发科安卓核心板MT8385(Genio 500)规格参数资料_性能介绍
  • ChatGPT付费创作系统小程序端开发工具提示打开显示无法打开页面解决办法
  • CVPR2023新作:pix2pix3D
  • Django自定义用户错误记录
  • Abaqus 导出单元刚度矩阵和全局刚度矩阵
  • Pytorch(一)
  • 图数据库Neo4j学习三——cypher语法总结
  • 2023杭电多校第一场部分题解
  • 算法38:反转链表【O(n)方案】
  • redis基本架构:一个键值数据库包含什么?(这篇文章主要是一个引导的作用)
  • HIS信息管理系统 HIS源码