ログイン

問題14 ハンバーガーメニューのアイコン実装

HTML_CSSの問題

HTML_CSS

Webサイトでよく見られるハンバーガーメニューのアイコンを作成します。 ハンバーガーメニューとは、Webアプリなどでよく見られる画面右上にある三本線のアイコンのことです。

ハンバーガーメニューのアイコン実装

問題

ハンバーガーメニューの開閉スイッチに使用するアイコンを実装していきましょう!
クリックしたら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¥
            
答えのアイコン

解説

input,labelでクリックした時の挙動を分けます。

デフォルトの3本線は、iタグで線で実装します。
iタグの値は:nth-child(n)で1~3まで別々にして表現

×印の表現は初級参拾弐を見本にして実装しましょう!
ログインして解答を見る
チェックボックスをうまく活用することで今回のようにハンバーガーメニューアイコンを作成することができます。

三本線を2本線の×印に変化させるには、1本の線を消す必要があります。
今回は2番目の要素にtransform: rotateX(90deg);を付与することで、X軸で回転させ要素が見えない状態にしています。(実在はしている)

更に手を加えることでハンバーガーアイコンをクリックしたときにメニューを表示させることもできますので、是非一度作りきってみましょう!
twitterのアイコン
活動記録をTweetする
完了にする!
1.HTMLの宣言をしてみよう
続きの動画を見たい方は公式LINEから「HTML」と送信すると動画が見れます。
LINEの友達追加でお役立ち動画をGET!!