【HTML】【CSS】グローバルナビゲーション(グローバルメニュー)のサンプルコード

この記事では、Webサイトのナビゲーションに不可欠な「グローバルメニュー」のサンプルコードを紹介しています。
HTMLとCSSだけで作ったシンプルなデザインとなっています。
実際のWeb制作にすぐに活用できる内容となっています。好みのデザインに変更/調整してご利用ください。

サンプルコード
【できあがりイメージ】
【CSS】
.gnavi__wrap {
    margin: 0 auto;
}
.gnavi__lists {
    display: flex;
    list-style: none;
    padding-left:0px;
    justify-content:center;
}
.gnavi__list {
    height: 40px;
    background-color: #E5F0F8;
    position: relative;
    transition: all .3s;
}
.gnavi__list:hover {
    background-color: #0071BB;
}
.gnavi__list:hover ul > li > ul {
    transform: scaleY(0);
    transform: scaleX(0);
}
.gnavi__list:hover ul > li > ul > li {
    display:none;
}

.gnavi__list:not(:first-child)::before {
    content: "";
    width: 1px;
    height: 100%;
    background-color: #fff;
    position: absolute;
    top: 0;
    left: 0;
    transition: all .3s;
}
.gnavi__list:hover::before {
    background-color: #0071BB;
}
.gnavi__list a {
    display: flex;
    justify-content: center;
    align-items: center;
    width:200px;
    height: 100%;
    text-decoration: none;
    color: #1b4059;
    font-size: 15px;
    letter-spacing: 0.05em;
    font-weight: 600;
    transition: all .3s;
}
.gnavi__list:hover a {
    color: #fff;
}

/**
 * ドロップダウン
 */
.dropdown__lists {
    transform: scaleY(0);
    transform-origin: center top;
    transition: all .3s;
    position: absolute;
    left: 0;
    list-style: none;
    padding-left: 0px;
    z-index:100;
}
.gnavi__list:hover .dropdown__lists {
    transform: scaleY(1);
}
.dropdown__list {
    background-color: #004d80;
    height: 40px;
    transition: all .3s;
    position: relative;
}
.dropdown__list:not(:first-child)::before{
    content: "";
    width: 100%;
    height: 1px;
    background-color: #3492d1;
    position: absolute;
    top: 0;
    left: 0;
}
.dropdown__list:hover {
    background-color: #003558;
}

.dropdown__list a {
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    text-decoration: none;
    position: relative;
}
.dropdown__list a::before {
    content: '';
    display: block;
    width: 6px;
    height: 6px;
    border-top: 2px solid #fff;
    border-left: 2px solid #fff;
    transform: rotate(135deg);
    position: absolute;
    right: 15px;
    top: calc(50% - 5px);
}

/**
    * サブドロップダウン
    */
    .sub_dropdown__lists {
    transform: scaleY(0);
    transform: scaleX(0);
    transform-origin: left top;
    transition: all .3s;
    position: absolute;
    left: 100%;
    top:0;
    list-style: none;
    padding-left: 0px;
}

.dropdown__list:hover .sub_dropdown__lists {
    transform: scaleY(1);
    transform: scaleX(1);
    top:0;
}
.dropdown__list:hover .sub_dropdown__lists > li {
    display : block;
}

.sub_dropdown__list {
    background-color: #004d80;
    height: 40px;
    transition: all .3s;
    position: relative;
}

.sub_dropdown__list:hover {
    background-color: #003558;
}

.sub_dropdown__list a {
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    text-decoration: none;
    position: relative;
}
.sub_dropdown__list a::before {
    content: '';
    display: block;
    width: 6px;
    height: 6px;
    border-top: 2px solid #fff;
    border-left: 2px solid #fff;
    transform: rotate(135deg);
    position: absolute;
    right: 15px;
    top: calc(50% - 5px);
}

【HTML】
<div class="gnavi__wrap">
    <ul class="gnavi__lists">
        <li class="gnavi__list">
            <a href="/top">メニュー1</a>
        </li>
        <li class="gnavi__list">
            <a href="#">メニュー2</a>
            <ul class="dropdown__lists">
                <li class="dropdown__list"><a href="#">サブメニュー1</a></li>
                <li class="dropdown__list"><a href="#">サブメニュー2</a></li>
                <li class="dropdown__list"><a href="#">サブメニュー3</a></li>
                <li class="dropdown__list">
                    <a href="#">サブメニュー4</a>
                    <ul class="sub_dropdown__lists">
                        <li class="sub_dropdown__list"><a href="#">サブサブメニュー1</a></li>
                        <li class="sub_dropdown__list"><a href="#">サブサブメニュー2</a></li>
                        <li class="sub_dropdown__list"><a href="#">サブサブメニュー3</a></li>
                    </ul>
                </li>
            </ul>
        </li>
        <li class="gnavi__list">
            <a href="/recruitment_setting">メニュー3</a>
        </li>
        <li class="gnavi__list">
            <a href="#">メニュー4</a>
            <ul class="dropdown__lists">
                <li class="dropdown__list"><a href="#">サブメニュー1</a></li>
                <li class="dropdown__list"><a href="#">サブメニュー2</a></li>
                <li class="dropdown__list"><a href="#">サブメニュー3</a></li>
            </ul>
        </li>
        <li class="gnavi__list">
            <a href="#">メニュー5</a>
            <ul class="dropdown__lists">
                <li class="dropdown__list"><a href="#">サブメニュー1</a></li>
                <li class="dropdown__list"><a href="#">サブメニュー2</a></li>
                <li class="dropdown__list"><a href="#">サブメニュー3</a></li>
            </ul>
        </li>
    </ul>
</div>


以上