perf[Style]: optimize the sidebar style to make it better to set

This commit is contained in:
Pan 2019-01-30 14:18:01 +08:00
parent dbd7ccd690
commit c1719929cb
3 changed files with 63 additions and 22 deletions

View File

@ -1,6 +1,6 @@
#app { #app {
// 主体区域 // 主体区域 Main container
.main-container { .main-container {
min-height: 100%; min-height: 100%;
transition: margin-left .28s; transition: margin-left .28s;
@ -8,7 +8,7 @@
position: relative; position: relative;
} }
// 侧边栏 // 侧边栏 Sidebar container
.sidebar-container { .sidebar-container {
transition: width 0.28s; transition: width 0.28s;
width: $sideBarWidth !important; width: $sideBarWidth !important;
@ -26,10 +26,6 @@
transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out; transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out;
} }
.el-scrollbar__bar.is-vertical {
right: 0px;
}
.scrollbar-wrapper { .scrollbar-wrapper {
overflow-x: hidden !important; overflow-x: hidden !important;
@ -38,6 +34,10 @@
} }
} }
.el-scrollbar__bar.is-vertical {
right: 0px;
}
.is-horizontal { .is-horizontal {
display: none; display: none;
} }
@ -58,8 +58,26 @@
width: 100% !important; width: 100% !important;
} }
// menu hover
.submenu-title-noDropdown,
.el-submenu__title {
&:hover {
background-color: $menuHover !important;
}
}
.is-active>.el-submenu__title { .is-active>.el-submenu__title {
color: #f4f4f5 !important; color: $subMenuActiveText !important;
}
& .nest-menu .el-submenu>.el-submenu__title,
& .el-submenu .el-menu-item {
min-width: $sideBarWidth !important;
background-color: $subMenuBg !important;
&:hover {
background-color: $subMenuHover !important;
}
} }
} }
@ -108,21 +126,11 @@
} }
} }
.sidebar-container .nest-menu .el-submenu>.el-submenu__title,
.sidebar-container .el-submenu .el-menu-item {
min-width: $sideBarWidth !important;
background-color: $subMenuBg !important;
&:hover {
background-color: $menuHover !important;
}
}
.el-menu--collapse .el-menu .el-submenu { .el-menu--collapse .el-menu .el-submenu {
min-width: $sideBarWidth !important; min-width: $sideBarWidth !important;
} }
//适配移动端 // 适配移动端, Mobile responsive
.mobile { .mobile {
.main-container { .main-container {
margin-left: 0px; margin-left: 0px;
@ -135,6 +143,7 @@
&.hideSidebar { &.hideSidebar {
.sidebar-container { .sidebar-container {
pointer-events: none;
transition-duration: 0.3s; transition-duration: 0.3s;
transform: translate3d(-$sideBarWidth, 0, 0); transform: translate3d(-$sideBarWidth, 0, 0);
} }
@ -150,10 +159,19 @@
} }
} }
// when menu collapsed
.el-menu--vertical { .el-menu--vertical {
&>.el-menu { &>.el-menu {
.svg-icon { .svg-icon {
margin-right: 16px; margin-right: 16px;
} }
} }
.nest-menu .el-submenu>.el-submenu__title,
.el-menu-item {
&:hover {
// You can use $subMenuHover
background-color: $menuHover !important;
}
}
} }

View File

@ -1,5 +1,24 @@
//sidebar //sidebar
$menuText:#bfcbd9;
$menuActiveText:#409EFF;
$subMenuActiveText:#f4f4f5; //https://github.com/ElemeFE/element/issues/12951
$menuBg:#304156; $menuBg:#304156;
$menuHover:#263445;
$subMenuBg:#1f2d3d; $subMenuBg:#1f2d3d;
$menuHover:#001528; $subMenuHover:#001528;
$sideBarWidth: 180px; $sideBarWidth: 180px;
// the :export directive is the magic sauce for webpack
:export {
menuText: $menuText;
menuActiveText: $menuActiveText;
subMenuActiveText: $subMenuActiveText;
menuBg: $menuBg;
menuHover: $menuHover;
subMenuBg: $subMenuBg;
subMenuHover: $subMenuHover;
sideBarWidth: $sideBarWidth;
}

View File

@ -4,10 +4,10 @@
:show-timeout="200" :show-timeout="200"
:default-active="$route.path" :default-active="$route.path"
:collapse="isCollapse" :collapse="isCollapse"
:background-color="variables.menuBg"
:text-color="variables.menuText"
:active-text-color="variables.menuActiveText"
mode="vertical" mode="vertical"
background-color="#304156"
text-color="#bfcbd9"
active-text-color="#409EFF"
> >
<sidebar-item v-for="route in routes" :key="route.path" :item="route" :base-path="route.path"/> <sidebar-item v-for="route in routes" :key="route.path" :item="route" :base-path="route.path"/>
</el-menu> </el-menu>
@ -16,6 +16,7 @@
<script> <script>
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import variables from '@/styles/variables.scss'
import SidebarItem from './SidebarItem' import SidebarItem from './SidebarItem'
export default { export default {
@ -27,6 +28,9 @@ export default {
routes() { routes() {
return this.$router.options.routes return this.$router.options.routes
}, },
variables() {
return variables
},
isCollapse() { isCollapse() {
return !this.sidebar.opened return !this.sidebar.opened
} }