mirror of
				https://github.com/pure-admin/vue-pure-admin.git
				synced 2025-11-03 13:44:47 +08:00 
			
		
		
		
	style: simplify sidebar scss
This commit is contained in:
		
							parent
							
								
									89162dee1e
								
							
						
					
					
						commit
						b1751beab9
					
				@ -1,19 +1,19 @@
 | 
				
			|||||||
// 暗色主题
 | 
					@mixin merge-style(
 | 
				
			||||||
body[data-theme="dark"] {
 | 
					  // 菜单选中后字体样式
 | 
				
			||||||
 | 
					  $subMenuActiveText,
 | 
				
			||||||
 | 
					  //菜单背景
 | 
				
			||||||
 | 
					  $menuBg,
 | 
				
			||||||
 | 
					  // 鼠标覆盖菜单时的背景
 | 
				
			||||||
 | 
					  $menuHover,
 | 
				
			||||||
 | 
					  // 子菜单背景
 | 
				
			||||||
 | 
					  $subMenuBg,
 | 
				
			||||||
 | 
					  // 鼠标覆盖子菜单时的背景
 | 
				
			||||||
 | 
					  $subMenuHover
 | 
				
			||||||
 | 
					) {
 | 
				
			||||||
  $menuText: #7a80b4;
 | 
					  $menuText: #7a80b4;
 | 
				
			||||||
  $menuActiveText: #7a80b4;
 | 
					  $menuActiveText: #7a80b4;
 | 
				
			||||||
  $subMenuActiveText: #f4f4f5;
 | 
					 | 
				
			||||||
  $sideBarWidth: 210px;
 | 
					  $sideBarWidth: 210px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //菜单背景
 | 
					 | 
				
			||||||
  $menuBg: #1b2a47;
 | 
					 | 
				
			||||||
  // 鼠标覆盖菜单时的背景
 | 
					 | 
				
			||||||
  $menuHover: #2a395b;
 | 
					 | 
				
			||||||
  // 子菜单背景
 | 
					 | 
				
			||||||
  $subMenuBg: #1f2d3d;
 | 
					 | 
				
			||||||
  // 鼠标覆盖子菜单时的背景
 | 
					 | 
				
			||||||
  $subMenuHover: #001528;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .main-container {
 | 
					  .main-container {
 | 
				
			||||||
    min-height: 100%;
 | 
					    min-height: 100%;
 | 
				
			||||||
    transition: margin-left 0.28s;
 | 
					    transition: margin-left 0.28s;
 | 
				
			||||||
@ -211,7 +211,7 @@ body[data-theme="dark"] {
 | 
				
			|||||||
    min-width: $sideBarWidth !important;
 | 
					    min-width: $sideBarWidth !important;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // mobile responsive
 | 
					  // 手机端
 | 
				
			||||||
  .mobile {
 | 
					  .mobile {
 | 
				
			||||||
    .main-container {
 | 
					    .main-container {
 | 
				
			||||||
      margin-left: 0px;
 | 
					      margin-left: 0px;
 | 
				
			||||||
@ -239,243 +239,36 @@ body[data-theme="dark"] {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 暗色主题
 | 
				
			||||||
 | 
					body[data-theme="dark"] {
 | 
				
			||||||
 | 
					  $subMenuActiveText: #f4f4f5;
 | 
				
			||||||
 | 
					  $menuBg: #1b2a47;
 | 
				
			||||||
 | 
					  $menuHover: #2a395b;
 | 
				
			||||||
 | 
					  $subMenuBg: #1f2d3d;
 | 
				
			||||||
 | 
					  $subMenuHover: #001528;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @include merge-style(
 | 
				
			||||||
 | 
					    $subMenuActiveText,
 | 
				
			||||||
 | 
					    $menuBg,
 | 
				
			||||||
 | 
					    $menuHover,
 | 
				
			||||||
 | 
					    $subMenuBg,
 | 
				
			||||||
 | 
					    $subMenuHover
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 亮色主题
 | 
					// 亮色主题
 | 
				
			||||||
body[data-theme="light"] {
 | 
					body[data-theme="light"] {
 | 
				
			||||||
  $menuText: #7a80b4;
 | 
					 | 
				
			||||||
  $menuActiveText: #7a80b4;
 | 
					 | 
				
			||||||
  $subMenuActiveText: #409eff;
 | 
					  $subMenuActiveText: #409eff;
 | 
				
			||||||
  $sideBarWidth: 210px;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  //菜单背景
 | 
					 | 
				
			||||||
  $menuBg: #fff;
 | 
					  $menuBg: #fff;
 | 
				
			||||||
  // 鼠标覆盖菜单时的背景
 | 
					 | 
				
			||||||
  $menuHover: #e0ebf6;
 | 
					  $menuHover: #e0ebf6;
 | 
				
			||||||
  // 子菜单背景
 | 
					 | 
				
			||||||
  $subMenuBg: #fff;
 | 
					  $subMenuBg: #fff;
 | 
				
			||||||
  // 鼠标覆盖子菜单时的背景
 | 
					 | 
				
			||||||
  $subMenuHover: #e0ebf6;
 | 
					  $subMenuHover: #e0ebf6;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .main-container {
 | 
					  @include merge-style(
 | 
				
			||||||
    min-height: 100%;
 | 
					    $subMenuActiveText,
 | 
				
			||||||
    transition: margin-left 0.28s;
 | 
					    $menuBg,
 | 
				
			||||||
    margin-left: $sideBarWidth;
 | 
					    $menuHover,
 | 
				
			||||||
    position: relative;
 | 
					    $subMenuBg,
 | 
				
			||||||
  }
 | 
					    $subMenuHover
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
  .sidebar-container {
 | 
					 | 
				
			||||||
    transition: width 0.28s;
 | 
					 | 
				
			||||||
    width: $sideBarWidth !important;
 | 
					 | 
				
			||||||
    background-color: $menuBg;
 | 
					 | 
				
			||||||
    height: 100%;
 | 
					 | 
				
			||||||
    position: fixed;
 | 
					 | 
				
			||||||
    font-size: 0px;
 | 
					 | 
				
			||||||
    top: 0;
 | 
					 | 
				
			||||||
    bottom: 0;
 | 
					 | 
				
			||||||
    left: 0;
 | 
					 | 
				
			||||||
    z-index: 1001;
 | 
					 | 
				
			||||||
    overflow: hidden;
 | 
					 | 
				
			||||||
    box-shadow: 0 0 1px #888888;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // reset element-plus css
 | 
					 | 
				
			||||||
    .horizontal-collapse-transition {
 | 
					 | 
				
			||||||
      transition: 0s width ease-in-out, 0s padding-left ease-in-out,
 | 
					 | 
				
			||||||
        0s padding-right ease-in-out;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .scrollbar-wrapper {
 | 
					 | 
				
			||||||
      overflow-x: hidden !important;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .el-scrollbar__bar.is-vertical {
 | 
					 | 
				
			||||||
      right: 0px;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .el-scrollbar {
 | 
					 | 
				
			||||||
      height: 100%;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    &.has-logo {
 | 
					 | 
				
			||||||
      .el-scrollbar {
 | 
					 | 
				
			||||||
        height: calc(100% - 50px);
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .is-horizontal {
 | 
					 | 
				
			||||||
      display: none;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    a {
 | 
					 | 
				
			||||||
      display: inline-block;
 | 
					 | 
				
			||||||
      width: 100%;
 | 
					 | 
				
			||||||
      overflow: hidden;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .el-menu {
 | 
					 | 
				
			||||||
      border: none;
 | 
					 | 
				
			||||||
      height: 100%;
 | 
					 | 
				
			||||||
      // background-color: $menuBg !important;
 | 
					 | 
				
			||||||
      // width: 100% !important;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .el-menu-item,
 | 
					 | 
				
			||||||
    .el-submenu__title {
 | 
					 | 
				
			||||||
      color: $menuText;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .el-menu {
 | 
					 | 
				
			||||||
      background-color: transparent;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // menu hover
 | 
					 | 
				
			||||||
    .submenu-title-noDropdown,
 | 
					 | 
				
			||||||
    .el-submenu__title {
 | 
					 | 
				
			||||||
      &:hover {
 | 
					 | 
				
			||||||
        background-color: $menuHover !important;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      background: $menuBg;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .is-active > .el-submenu__title,
 | 
					 | 
				
			||||||
    .is-active.submenu-title-noDropdown {
 | 
					 | 
				
			||||||
      color: $subMenuActiveText !important;
 | 
					 | 
				
			||||||
      i {
 | 
					 | 
				
			||||||
        color: $subMenuActiveText !important;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .is-active {
 | 
					 | 
				
			||||||
      transition: color 0.3s;
 | 
					 | 
				
			||||||
      color: $subMenuActiveText !important;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    & .nest-menu .el-submenu > .el-submenu__title,
 | 
					 | 
				
			||||||
    & .el-submenu .el-menu-item {
 | 
					 | 
				
			||||||
      font-size: 12px;
 | 
					 | 
				
			||||||
      min-width: $sideBarWidth !important;
 | 
					 | 
				
			||||||
      background-color: $subMenuBg !important;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      &:hover {
 | 
					 | 
				
			||||||
        background-color: $subMenuHover !important;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .hideSidebar {
 | 
					 | 
				
			||||||
    .sidebar-container {
 | 
					 | 
				
			||||||
      width: 54px !important;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .main-container {
 | 
					 | 
				
			||||||
      margin-left: 54px;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .submenu-title-noDropdown {
 | 
					 | 
				
			||||||
      padding: 0 !important;
 | 
					 | 
				
			||||||
      position: relative;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      .el-tooltip {
 | 
					 | 
				
			||||||
        padding: 0 !important;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .el-submenu {
 | 
					 | 
				
			||||||
      overflow: hidden;
 | 
					 | 
				
			||||||
      & > .el-submenu__title {
 | 
					 | 
				
			||||||
        .el-submenu__icon-arrow {
 | 
					 | 
				
			||||||
          display: none;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .el-menu--collapse {
 | 
					 | 
				
			||||||
      margin-left: -5px; //需优化的地方
 | 
					 | 
				
			||||||
      .el-submenu {
 | 
					 | 
				
			||||||
        & > .el-submenu__title {
 | 
					 | 
				
			||||||
          & > span {
 | 
					 | 
				
			||||||
            height: 0;
 | 
					 | 
				
			||||||
            width: 0;
 | 
					 | 
				
			||||||
            overflow: hidden;
 | 
					 | 
				
			||||||
            visibility: hidden;
 | 
					 | 
				
			||||||
            display: inline-block;
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // 菜单折叠
 | 
					 | 
				
			||||||
  .el-menu--vertical {
 | 
					 | 
				
			||||||
    .el-menu--popup {
 | 
					 | 
				
			||||||
      background-color: $subMenuBg !important;
 | 
					 | 
				
			||||||
      .el-menu-item {
 | 
					 | 
				
			||||||
        color: $menuText;
 | 
					 | 
				
			||||||
        background-color: $subMenuBg;
 | 
					 | 
				
			||||||
        &:hover {
 | 
					 | 
				
			||||||
          background-color: $subMenuHover;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    & > .el-menu {
 | 
					 | 
				
			||||||
      i {
 | 
					 | 
				
			||||||
        margin-right: 16px;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .is-active > .el-submenu__title,
 | 
					 | 
				
			||||||
    .is-active.submenu-title-noDropdown {
 | 
					 | 
				
			||||||
      color: $subMenuActiveText !important;
 | 
					 | 
				
			||||||
      i {
 | 
					 | 
				
			||||||
        color: $subMenuActiveText !important;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .is-active {
 | 
					 | 
				
			||||||
      transition: color 0.3s;
 | 
					 | 
				
			||||||
      color: $subMenuActiveText !important;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .nest-menu .el-submenu > .el-submenu__title,
 | 
					 | 
				
			||||||
    .el-menu-item {
 | 
					 | 
				
			||||||
      &:hover {
 | 
					 | 
				
			||||||
        // you can use $subMenuHover
 | 
					 | 
				
			||||||
        background-color: $menuHover !important;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .el-scrollbar__wrap {
 | 
					 | 
				
			||||||
    overflow: auto;
 | 
					 | 
				
			||||||
    height: 100%;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .el-menu--collapse .el-menu .el-submenu {
 | 
					 | 
				
			||||||
    min-width: $sideBarWidth !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // mobile responsive
 | 
					 | 
				
			||||||
  .mobile {
 | 
					 | 
				
			||||||
    .main-container {
 | 
					 | 
				
			||||||
      margin-left: 0px;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .sidebar-container {
 | 
					 | 
				
			||||||
      transition: transform 0.28s;
 | 
					 | 
				
			||||||
      width: $sideBarWidth !important;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    &.hideSidebar {
 | 
					 | 
				
			||||||
      .sidebar-container {
 | 
					 | 
				
			||||||
        pointer-events: none;
 | 
					 | 
				
			||||||
        transition-duration: 0.3s;
 | 
					 | 
				
			||||||
        transform: translate3d(-$sideBarWidth, 0, 0);
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .withoutAnimation {
 | 
					 | 
				
			||||||
    .main-container,
 | 
					 | 
				
			||||||
    .sidebar-container {
 | 
					 | 
				
			||||||
      transition: none;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user