🔰はじめての方へ

【CSS ネタ帳】CSSのみのハンバーガーメニュー

CSS
記事内に広告が含まれています。
スポンサーリンク

完成図

※私が作成しているサイトを例にしています。

HTML

※ インデントめちゃくちゃ

<!--モバイル用のメニュ-->
        <div class="hamburger-button">
            <input type="checkbox" id="check">
            <label for="check" class="hamburger">
            <span></span>
            </label>

            <nav class="mb-navi">
                <ul class="mb-navi_menu">
                    <li class="mb-navi-list"><a href="/.html"></a></li>
                    <li class="mb-navi-list"><a href="/.html"></a></li>
                    <li class="mb-navi-list"><a href="/.html"></a></li>
                    <li class="mb-navi-list"><a href="/.html"></a></li>
                    <li class="mb-navi-list"><a href="/.html"></a></li>
                </ul>
            </nav>
        </div>

※ リストの中身は割愛しています。

CSS

※ インデントめちゃくちゃ

/*ハンバーガーメニューボタン*/
    /*チェックボックスは隠す*/
    input[type="checkbox"] {
        opacity: 0;
        visibility: hidden;
        position: absolute;
    }
    /*枠labelの設定*/
    .hamburger {
        display: inline-block;
        width: 25px;
        height: 20px;
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
        cursor: pointer;
    }
    /*三本線の設定*/
    .hamburger span,
    .hamburger span::before,
    .hamburger span::after {
        position: absolute;
        display: block;
        content: "";
        width: 100%;
        height: 2px;
        background-color: #333;
        transition: all 0.5s;
    }
    .hamburger span::before {
        top: -10px;
    }
    .hamburger span::after {
        bottom: -10px;
    }

    input[type="checkbox"]:checked + .hamburger span {
        background-color: transparent; /*背景の透過 三本線の真ん中は消す*/
    }
    /*閉じるときに×になるようにする*/
    input[type="checkbox"]:checked + .hamburger span::before {
        top: 0;
        transform: rotate(45deg); /*45度回転*/
    }
    input[type="checkbox"]:checked + .hamburger span::after {
    bottom: 0;
    transform: rotate(-45deg);
    }

    /*モバイル用ナビスタイリング*/
    .mb-navi {
        position: fixed; /*画面に対しての位置、スクロールしても表示*/
        width: 80%;
        height: 100vh;
        top: 50px;
        right: -120%; /*スライドイン用*/
        background-color: #f0e5dad9;
        color: #333;
        padding: 30px 0;
        transition: all 0.5s;
        z-index: 99;
        /*ハンバーガーモバイルナビをスクロール*/
        height: 100%;
        overflow-y: scroll;
    }
    /*モバイル用ナビリスト*/
    .mb-navi-list a {
        display: block;
        font-size: 1.2em;
        padding: 15px 0 30px 30px;
        text-transform: uppercase; /*テキストを大文字*/
    }

    input[type="checkbox"]:checked ~ .mb-navi {
        right: 0;
    }

    .mb-navi-list:hover {
        background-color: aliceblue;
    }

参考にしたサイト

スマートフォンだけハンバーガーメニュー表示にする(CSS) | YYPOUP

【2024年】ハンバーガーメニューの作り方決定版【コピペ可能】 | techlab / baigie 
わかりやすい! ドロップダウンリスト真似してみたかったけどできませんでした。

超簡単!CSSだけでハンバーガーメニューを作成する方法! 

ハンバーガーメニュー わかりやすい解説 
このサイトは神レベルです!

ハンバーガーメニュー一番わかりやすい
わかりやすくて、コード参考にさせていただきました。

さいごに

めちゃくちゃ難しかったです。

何日もかかりました。

原理がわかればすんなり入ってきましたので、参考にしてみてください!

コメント