①ボタンの実装
まずは3本線のよく見るハンバーガーボタンを実装します。
HTML
<div class="hamburger-menu">
<input type="checkbox" id="menu-btn-check">
<label for="menu-btn-check" class="menu-btn"><span></span></label>
CSS
.menu-btn {
position: fixed;
top: 10px;
right: 10px;
display: flex;
height: 60px;
width: 60px;
justify-content: center;
align-items: center;
z-index: 90;
background-color: #3584bb;
}
.menu-btn span,
.menu-btn span:before,
.menu-btn span:after {
content: '';
display: block;
height: 3px;
width: 25px;
border-radius: 3px;
background-color: #ffffff;
position: absolute;
}
.menu-btn span:before {
bottom: 8px;
}
.menu-btn span:after {
top: 8px;
}
#menu-btn-check:checked~.menu-btn span {
background-color: rgba(255, 255, 255, 0);
/*メニューオープン時は真ん中の線を透明にする*/
}
#menu-btn-check:checked~.menu-btn span::before {
bottom: 0;
transform: rotate(45deg);
}
#menu-btn-check:checked~.menu-btn span::after {
top: 0;
transform: rotate(-45deg);
}
#menu-btn-check {
display: none;
}
- ボタンが押されたかの判断は、checkboxで判断します。
- position:fixed;でスクロールしてもついてくるように固定します。
- アイコンはspanタグを疑似要素(before,after)と絶対配置(position:absolute;)を用いて上下に分けて3本線を作ります。
- 間接セレクタ(~)で、ある要素がチェックされたらその後ろにある別の要素の見た目を変更するという操作を行います。具体的には真ん中の線を消して上下の線をバツ印に変形させます。
- 画面上に出てくるcheckboxを見えないように消します。