問題14:ハンバーガーメニューのアイコン実装
ハンバーガーメニューの開閉スイッチに使用するアイコンを実装していきましょう!
クリックしたら3本線から×印にちょっとしたアニメーションを施しましょう。
見本動画を参考にして実装してください。
クリックしたら3本線から×印にちょっとしたアニメーションを施しましょう。
見本動画を参考にして実装してください。
期待する画面
解答ソースコード
<input type="checkbox" id="hamburger">
<label for="hamburger">
<span>
<i></i>
<i></i>
<i></i>
</span>
</label>
¥HTML¥
input {
display: none;
}
label {
position: relative;
}
span {
display: inline-block;
width: 25px;
height: 17px;
}
span i {
position: absolute;
width: 100%;
height: 2px;
background-color: #000;
display: block;
transition: all .3s ease-in-out;
}
span i:nth-child(1) {
top: 0;
}
span i:nth-child(2) {
margin: auto;
top: 0;
bottom: 0;
}
span i:nth-child(3) {
bottom: 0;
}
input:checked + label span i:nth-child(1) {
margin: auto;
transform: rotate(45deg);
right: 0;
bottom: 0;
left: 0;
top: 0;
}
input:checked + label span i:nth-child(2) {
transform: rotateX(90deg);
top: 0;
bottom: 0;
}
input:checked + label span i:nth-child(3) {
margin: auto;
transform: rotate(-45deg);
top: 0;
right: 0;
bottom: 0;
}
¥CSS¥
補足
チェックボックスをうまく活用することで今回のようにハンバーガーメニューアイコンを作成することができます。
三本線を2本線の×印に変化させるには、1本の線を消す必要があります。
今回は2番目の要素にtransform: rotateX(90deg);を付与することで、X軸で回転させ要素が見えない状態にしています。(実在はしている)
更に手を加えることでハンバーガーアイコンをクリックしたときにメニューを表示させることもできますので、是非一度作りきってみましょう!
三本線を2本線の×印に変化させるには、1本の線を消す必要があります。
今回は2番目の要素にtransform: rotateX(90deg);を付与することで、X軸で回転させ要素が見えない状態にしています。(実在はしている)
更に手を加えることでハンバーガーアイコンをクリックしたときにメニューを表示させることもできますので、是非一度作りきってみましょう!
完了にする!
活動記録をTweetする
1.HTMLの宣言をしてみよう
デフォルトの3本線は、iタグで線で実装します。
iタグの値は:nth-child(n)で1~3まで別々にして表現
×印の表現は初級参拾弐を見本にして実装しましょう!