<nav class="nav-box">
<input type="checkbox" id="menu">
<label for="menu" class="line">
<div class="menu"></div>
</label>
<div class="menu-list">
<ul>
<li>選單1</li>
<li>選單2</li>
<li>選單3</li>
</ul>
</div>
</nav>
/*
選單線
*/
.line {
width: 24px;
height: 24px;
background: #fff;
cursor: pointer;
display: block;
padding: 16px;
position: fixed;
z-index: 2;
}
.line .menu,
.line .menu::before,
.line .menu::after {
background: #222;
content: "";
display: block;
height: 1px;
position: absolute;
transition: background ease 0.15s, top ease 0.15s 0.15s, transform ease 0.15s;
width: 20px;
}
.line .menu {
left: 18px;
top: 27px;
}
.line .menu::before {
top: -6px;
}
.line .menu::after {
top: 6px;
}
/*
點選選單變叉叉
*/
#menu:checked + .line .menu {
background: transparent;
}
#menu:checked + .line .menu::before {
transform: rotate(45deg);
}
#menu:checked + .line .menu::after {
transform: rotate(-45deg);
}
#menu:checked + .line .menu::before,
#menu:checked + .line .menu::after {
top: 0;
transition: top ease 0.15s, transform ease 0.15s 0.15s;
}
/*
選單開合
*/
#menu:checked ~ .menu-list {
width: 200px;
}
.menu-list {
width: 60px;
height: 100vh;
background: #fff;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
padding-top: 60px;
position: fixed;
z-index: 1;
transition: all 0.3s;
overflow: hidden;
}
/*
選單向外推
*/
.menu-list ul {
list-style: none;
margin-left: 70px;
padding: 0;
}
.menu-list ul > li {
display: block;
width: 100px;
}
/*
隱藏核許框
*/
input#menu {
display: none;
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.