js+css实现多级垂直横向后台管理左侧导航菜单嗲代码

代码语言:html

所属分类:菜单导航

代码描述:js+css实现多级垂直横向后台管理左侧导航菜单嗲代码

代码标签: css 多级 菜单 垂直 后台 左侧 导航

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">

    <link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/remixicon.css">
    <style>
        .layout {
    	min-height:100%;
    	display:-webkit-box;
    	display:-ms-flexbox;
    	display:flex;
    	-webkit-box-orient:vertical;
    	-webkit-box-direction:normal;
    	-ms-flex-direction:column;
    	flex-direction:column;
    	position:relative;
    	-webkit-box-flex:1;
    	-ms-flex-positive:1;
    	flex-grow:1
    }
    .layout.has-sidebar {
    	-webkit-box-orient:horizontal;
    	-webkit-box-direction:normal;
    	-ms-flex-direction:row;
    	flex-direction:row
    }
    .layout .header {
    	-webkit-transition:width,0.3s;
    	transition:width,0.3s;
    	height:64px;
    	min-height:64px;
    	position:relative
    }
    .layout .sidebar {
    	width:280px;
    	min-width:280px;
    	-webkit-transition:width,left,right,0.3s;
    	transition:width,left,right,0.3s
    }
    .layout .sidebar.collapsed {
    	width:80px;
    	min-width:80px
    }
    @media(max-width:480px) {
    	.layout .sidebar.break-point-xs {
    	position:fixed;
    	left:-280px;
    	height:100%;
    	top:0;
    	z-index:100
    }
    .layout .sidebar.break-point-xs.collapsed {
    	left:-80px
    }
    .layout .sidebar.break-point-xs.toggled {
    	left:0
    }
    .layout .sidebar.break-point-xs.toggled ~ .overlay {
    	display:block
    }
    .layout .sidebar.break-point-xs ~ .layout .header {
    	width:100%!important;
    	-webkit-transition:none;
    	transition:none
    }
    }@media(max-width:576px) {
    	.layout .sidebar.break-point-sm {
    	position:fixed;
    	left:-280px;
    	height:100%;
    	top:0;
    	z-index:100
    }
    .layout .sidebar.break-point-sm.collapsed {
    	left:-80px
    }
    .layout .sidebar.break-point-sm.toggled {
    	left:0
    }
    .layout .sidebar.break-point-sm.toggled ~ .overlay {
    	display:block
    }
    .layout .sidebar.break-point-sm ~ .layout .header {
    	width:100%!important;
    	-webkit-transition:none;
    	transition:none
    }
    }@media(max-width:768px) {
    	.layout .sidebar.break-point-md {
    	position:fixed;
    	left:-280px;
    	height:100%;
    	top:0;
    	z-index:100
    }
    .layout .sidebar.break-point-md.collapsed {
    	left:-80px
    }
    .layout .sidebar.break-point-md.toggled {
    	left:0
    }
    .layout .sidebar.break-point-md.toggled ~ .overlay {
    	display:block
    }
    .layout .sidebar.break-point-md ~ .layout .header {
    	width:100%!important;
    	-webkit-transition:none;
    	transition:none
    }
    }@media(max-width:992px) {
    	.layout .sidebar.break-point-lg {
    	position:fixed;
    	left:-280px;
    	height:100%;
    	top:0;
    	z-index:100
    }
    .layout .sidebar.break-point-lg.collapsed {
    	left:-80px
    }
    .layout .sidebar.break-point-lg.toggled {
    	left:0
    }
    .layout .sidebar.break-point-lg.toggled ~ .overlay {
    	display:block
    }
    .layout .sidebar.break-point-lg ~ .layout .header {
    	width:100%!important;
    	-webkit-transition:none;
    	transition:none
    }
    }@media(max-width:1200px) {
    	.layout .sidebar.break-point-xl {
    	position:fixed;
    	left:-280px;
    	height:100%;
    	top:0;
    	z-index:100
    }
    .layout .sidebar.break-point-xl.collapsed {
    	left:-80px
    }
    .layout .sidebar.break-point-xl.toggled {
    	left:0
    }
    .layout .sidebar.break-point-xl.toggled ~ .overlay {
    	display:block
    }
    .layout .sidebar.break-point-xl ~ .layout .header {
    	width:100%!important;
    	-webkit-transition:none;
    	transition:none
    }
    }@media(max-width:1600px) {
    	.layout .sidebar.break-point-xxl {
    	position:fixed;
    	left:-280px;
    	height:100%;
    	top:0;
    	z-index:100
    }
    .layout .sidebar.break-point-xxl.collapsed {
    	left:-80px
    }
    .layout .sidebar.break-point-xxl.toggled {
    	left:0
    }
    .layout .sidebar.break-point-xxl.toggled ~ .overlay {
    	display:block
    }
    .layout .sidebar.break-point-xxl ~ .layout .header {
    	width:100%!important;
    	-webkit-transition:none;
    	transition:none
    }
    }.layout .footer {
    	height:64px;
    	min-height:64px
    }
    .layout .content {
    	-webkit-box-flex:1;
    	-ms-flex-positive:1;
    	flex-grow:1
    }
    .layout .overlay {
    	position:fixed;
    	top:0;
    	right:0;
    	bottom:0;
    	left:0;
    	background-color:rgba(0,0,0,0.3);
    	z-index:99;
    	display:none
    }
    .layout .sidebar-toggler {
    	display:none
    }
    @media(max-width:480px) {
    	.layout .sidebar-toggler.break-point-xs {
    	display:initial
    }
    }@media(max-width:576px) {
    	.layout .sidebar-toggler.break-point-sm {
    	display:initial
    }
    }@media(max-width:768px) {
    	.layout .sidebar-toggler.break-point-md {
    	display:initial
    }
    }@media(max-width:992px) {
    	.layout .sidebar-toggler.break-point-lg {
    	display:initial
    }
    }@media(max-width:1200px) {
    	.layout .sidebar-toggler.break-point-xl {
    	display:initial
    }
    }@media(max-width:1600px) {
    	.layout .sidebar-toggler.break-point-xxl {
    	display:initial
    }
    }.layout.fixed-sidebar {
    	height:100%
    }
    .layout.fixed-sidebar .sidebar {
    	height:100%;
    	overflow:auto
    }
    .layout.fixed-sidebar .sidebar ~ .layout {
    	height:100%;
    	overflow:auto
    }
    .layout.fixed-header .header {
    	position:fixed;
    	width:100%;
    	z-index:2
    }
    .layout.fixed-header .header ~ .layout,.layout.fixed-header .header ~ .content {
    	margin-top:64px
    }
    .layout.fixed-header.fixed-sidebar .header {
    	width:calc(100% - 280px)
    }
    .layout.fixed-header.fixed-sidebar .sidebar.collapsed ~ .layout .header {
    	width:calc(100% - 80px)
    }
    .layout.rtl {
    	direction:rtl
    }
    @media(max-width:480px) {
    	.layout.rtl .sidebar.break-point-xs {
    	left:auto;
    	right:-280px
    }
    .layout.rtl .sidebar.break-point-xs.collapsed {
    	left:auto;
    	right:-80px
    }
    .layout.rtl .sidebar.break-point-xs.toggled {
    	left:auto;
    	right:0
    }
    }@media(max-width:576px) {
    	.layout.rtl .sidebar.break-point-sm {
    	left:auto;
    	right:-280px
    }
    .layout.rtl .sidebar.break-point-sm.collapsed {
    	left:auto;
    	right:-80px
    }
    .layout.rtl .sidebar.break-point-sm.toggled {
    	left:auto;
    	right:0
    }
    }@media(max-width:768px) {
    	.layout.rtl .sidebar.break-point-md {
    	left:auto;
    	right:-280px
    }
    .layout.rtl .sidebar.break-point-md.collapsed {
    	left:auto;
    	right:-80px
    }
    .layout.rtl .sidebar.break-point-md.toggled {
    	left:auto;
    	right:0
    }
    }@media(max-width:992px) {
    	.layout.rtl .sidebar.break-point-lg {
    	left:auto;
    	right:-280px
    }
    .layout.rtl .sidebar.break-point-lg.collapsed {
    	left:auto;
    	right:-80px
    }
    .layout.rtl .sidebar.break-point-lg.toggled {
    	left:auto;
    	right:0
    }
    }@media(max-width:1200px) {
    	.layout.rtl .sidebar.break-point-xl {
    	left:auto;
    	right:-280px
    }
    .layout.rtl .sidebar.break-point-xl.collapsed {
    	left:auto;
    	right:-80px
    }
    .layout.rtl .sidebar.break-point-xl.toggled {
    	left:auto;
    	right:0
    }
    }@media(max-width:1600px) {
    	.layout.rtl .sidebar.break-point-xxl {
    	left:auto;
    	right:-280px
    }
    .layout.rtl .sidebar.break-point-xxl.collapsed {
    	left:auto;
    	right:-80px
    }
    .layout.rtl .sidebar.break-point-xxl.toggled {
    	left:auto;
    	right:0
    }
    }.layout {
    	z-index:1
    }
    .layout .header {
    	box-shadow:1px 1px 4px #9aa0b9;
    	display:flex;
    	align-items:center;
    	padding:20px
    }
    .layout .content {
    	padding:20px;
    	display:flex;
    	flex-direction:column
    }
    .layout .footer {
    	text-align:center;
    	margin-top:auto;
    	margin-bottom:20px;
    	padding:20px
    }
    .layout.rtl .header {
    	box-shadow:-1px 1px 4px #9aa0b9
    }
    .sidebar {
    	color:#b3b8d4;
    	overflow-x:hidden!important;
    	position:relative;
    	background-color:#0c1e35
    }
    .sidebar .image-wrapper {
    	position:absolute;
    	top:0;
    	right:0;
    	bottom:0;
    	left:0;
    	opacity:.2;
    	z-index:1;
    	display:none
    }
    .sidebar .image-wrapper>img {
    	width:100%;
    	height:100%;
    	object-fit:cover;
    	object-position:center
    }
    .sidebar.has-bg-image .image-wrapper {
    	display:block
    }
    .sidebar .sidebar-layout {
    	height:100%;
    	display:flex;
    	flex-direction:column;
    	position:relative;
    	z-index:2
    }
    .sidebar .sidebar-layout .sidebar-header {
    	height:64px;
    	min-height:64px;
    	display:flex;
    	align-items:center;
    	padding:0 20px;
    	border-bottom:1px solid rgba(83,93,125,0.3)
    }
    .sidebar .sidebar-layout .sidebar-header>span {
    	overflow:hidden;
    	white-space:nowrap;
    	text-overflow:ellipsis
    }
    .sidebar .sidebar-layout .sidebar-content {
    	flex-grow:1;
    	padding:10px 0
    }
    .sidebar .sidebar-layout .sidebar-footer {
    	height:64px;
    	min-height:64px;
    	display:flex;
    	align-items:center;
    	border-top:1px solid rgba(83,93,125,0.3);
    	padding:0 20px
    }
    .sidebar .sidebar-layout .sidebar-footer>span {
    	overflow:hidden;
    	white-space:nowrap;
    	text-overflow:ellipsis
    }
    @keyframes swing {
    	0%,30%,50%,70%,100% {
    	transform:rotate(0deg)
    }
    10% {
    	transform:rotate(10deg)
    }
    40% {
    	transform:rotate(-10deg)
    }
    60% {
    	transform:rotate(5deg)
    }
    80% {
    	transform:rotate(-5deg)
    }
    }.layout .sidebar .menu ul {
    	list-style-type:none;
    	padding:0;
    	margin:0
    }
    .layout .sidebar .menu .menu-item a {
    	display:flex;
    	align-items:center;
    	height:50px;
    	padding:0 20px;
    	color:#b3b8d4
    }
    .layout .sidebar .menu .menu-item a .menu-icon {
    	font-size:1.2rem;
    	width:35px;
    	min-width:35px;
    	height:35px;
    	line-height:35px;
    	text-align:center;
    	display:inline-block;
    	margin-right:10px;
    	border-radius:2px;
    	transition:color .3s
    }
    .layout .sidebar .menu .menu-item a .menu-icon i {
    	display:inline-block
    }
    .layout .sidebar .menu .menu-item a .menu-title {
    	font-size:.9rem;
    	overflow:hidden;
    	text-overflow:ellipsis;
    	white-space:nowrap;
    	flex-grow:1;
    	transition:color .3s
    }
    .layout .sidebar .menu .menu-item a .menu-prefix,.layout .sidebar .menu .menu-item a .menu-suffix {
    	display:inline-block;
    	padding:5px;
    	opacity:1;
    	transition:opacity .3s
    }
    .layout .sidebar .menu .menu-item a:hover .menu-title {
    	color:#dee2ec
    }
    .layout .sidebar .menu .menu-item a:hover .menu-icon {
    	color:#dee2ec
    }
    .layout .sidebar .menu .menu-item a:hover .menu-icon i {
    	animation:swing ease-in-out .5s 1 alternate
    }
    .layout .sidebar .menu .menu-item a:hover::after {
    	border-color:#dee2ec!important
    }
    .layout .sidebar .menu .menu-item.sub-menu {
    	position:relative
    }
    .layout .sidebar .menu .menu-item.sub-menu>a::after {
    	content:"";
    	transition:transform .3s;
    	border-right:2px solid currentcolor;
    	border-bottom:2px solid currentcolor;
    	width:5px;
    	height:5px;
    	transform:rotate(-45deg)
    }
    .layout .sidebar .menu .menu-item.sub-menu>.sub-menu-list {
    	padding-left:20px;
    	display:none;
    	overflow:hidden;
    	z-index:999
    }
    .layout .sidebar .menu .menu-item.sub-menu.open>a::after {
    	transform:rotate(45deg)
    }
    .layout .sidebar .menu .menu-item.active>a .menu-title {
    	color:#dee2ec
    }
    .layout .sidebar .menu .menu-item.active>a::after {
    	border-color:#dee2ec
    }
    .layout .sidebar .menu .menu-item.active>a .menu-icon {
    	color:#dee2ec
    }
    .layout .sidebar .menu>ul>.sub-menu>.sub-menu-list {
    	background-color:#0b1a2c
    }
    .layout .sidebar .menu.icon-shape-circle .menu-item a .menu-icon,.layout .sidebar .menu.icon-shape-rounded .menu-item a .menu-icon,.layout .sidebar .menu.icon-shape-square .menu-item a .menu-icon {
    	background-color:#0b1a2c
    }
    .layout .sidebar .menu.icon-shape-circle .menu-item a .menu-icon {
    	border-radius:50%
    }
    .layout .sidebar .menu.icon-shape-rounded .menu-item a .menu-icon {
    	border-radius:4px
    }
    .layout .sidebar .menu.icon-shape-square .menu-item a .menu-icon {
    	border-radius:0
    }
    .layout .sidebar:not(.collapsed) .menu>ul>.menu-item.sub-menu>.sub-menu-list {
    	visibility:visible!important;
    	position:static!important;
    	transform:translate(0,0)!important
    }
    .layout .sidebar.collapsed .menu>ul>.menu-item>a .menu-prefix,.layout .sidebar.collapsed .menu>ul>.menu-item>a .menu-suffix {
    	opacity:0
    }
    .layout .sidebar.collapsed .menu>ul>.menu-item.sub-menu>a::after {
    	content:"";
    	width:5px;
    	height:5px;
    	background-color:currentcolor;
    	border-radius:50%;
    	display:inline-block;
    	position:absolute;
    	right:10px;
    	top:50%;
    	border:0;
    	transform:translateY(-50%)
    }
    .layout .sidebar.collapsed .menu>ul>.menu-item.sub-menu>a:hover::after {
    	background-color:#dee2ec
    }
    .layout .sidebar.collapsed .menu>ul>.menu-item.sub-menu>.sub-menu-list {
    	transition:none!important;
    	width:200px;
    	margin-left:3px!important;
    	border-radius:4px;
    	display:block!important
    }
    .layout .sidebar.collapsed .menu>ul>.menu-item.active>a::after {
    	background-color:#dee2ec
    }
    .layout .sidebar.has-bg-image .menu.icon-shape-circle .menu-item a .menu-icon,.layout .sidebar.has-bg-image .menu.icon-shape-rounded .menu-item a .menu-icon,.layout .sidebar.has-bg-image .menu.icon-shape-square .menu-item a .menu-icon {
    	background-color:rgba(11,26,44,0.6)
    }
    .layout .sidebar.has-bg-image:not(.collapsed) .menu>ul>.sub-menu>.sub-menu-list {
    	background-color:rgba(11,26,44,0.6)
    }
    .layout.rtl .sidebar .menu .menu-item a .menu-icon {
    	margin-left:10px;
    	margin-right:0
    }
    .layout.rtl .sidebar .menu .menu-item.sub-menu>a::after {
    	transform:rotate(135deg)
    }
    .layout.rtl .sidebar .menu .menu-item.sub-menu>.sub-menu-list {
    	padding-left:0;
    	padding-right:20px
    }
    .layout.rtl .sidebar .menu .menu-item.sub-menu.open>a::after {
    	transform:rotate(45deg)
    }
    .layout.rtl .sidebar.collapsed .menu>ul>.menu-item.sub-menu a::after {
    	right:auto;
    	left:10px
    }
    .layout.rtl .sidebar.collapsed .menu>ul>.menu-item.sub-menu>.sub-menu-list {
    	margin-left:-3px!important
    }
    * {
    	box-sizing:border-box
    }
    body {
    	margin:0;
    	height:100vh;
    	font-family:"Roboto",sans-serif;
    	color:#212529
    }
    a {
    	text-decoration:none
    }
    @media(max-width:992px) {
    	#btn-collapse {
    	display:none
    }
    }
    </style>
</head>

<body>

    <!-- partial:index.partial.html -->
    <div class="layout has-sidebar fixed-sidebar fixed-header">
        <aside id="sidebar" class="sidebar break-point-lg has-bg-image">
            <div class="image-wrapper"><img src="//repo.bfw.wiki/bfwrepo/image/5fd82faab9c8f.png" alt="sidebar background" /></div>
            <div class="sidebar-layout">
                <div class="sidebar-header"><span style="
                text-transform: uppercase;
                font-size: 15px;
                letter-spacing: 3px;
                font-weight: bold;
              ">Admin</span></div>
                <div class="sidebar-content">
                    <nav class="menu open-current-submenu">
                        <ul>
                            <li class="menu-item sub-menu"><a href="#"><span class="menu-icon"><i class="ri-vip-diamond-fill"></i></span><span class="menu-title">Components</span><span class="menu-suffix">&#x1F525;</span></a>
                                <div class="sub-menu-list">
                                    <ul>
                                        <li class="menu-item"><a href="#"><span class="menu-title">Grid</span></a></li>
                                        <li class="menu-item"><a href="#"><span class="menu-title">Layout</span></a></li>
                                        <li class="menu-item sub-menu"><a href="#"><span class="menu-title">Forms</span></a>
                                            <div class="sub-menu-list">
                                            .........完整代码请登录后点击上方下载按钮下载查看

网友评论0