<div class="wrapper">
  <div class="contents">
    <div class="contents__inner">
<!--      <h1>【DEMO】CSSのみで作るドロップダウンメニュー(シングル&多階層&メガ)</h1> -->
      
      <div class="mod__trg"><i></i>AAA</div>
      
      
      <nav>
        <ul class="menu">
          
          <li class="menu__none"><a href="#">Menu none</a></li>


          <li class="menu__multi">
            <a href="#" class="init-bottom">Menu multi level</a>
            <ul class="menu__second-level">
              <li>
                <a href="#" class="init-right">Child Menu</a>
                <ul class="menu__third-level">
                  <li>
                    <a href="#" class="init-right">Grandchild Menu</a>
                    <ul class="menu__fourth-level">
                      <li><a href="#">Great-Grandchild Menu</a></li>
                      <li><a href="#">Great-Grandchild Menu</a></li>
                      <li><a href="#">Great-Grandchild Menu</a></li>
                    </ul>
                  </li>
                  <li><a href="#">Grandchild Menu</a></li>
                  <li><a href="#">Grandchild Menu</a></li>
                </ul>
              </li>
              <li>
                <a href="#" class="init-right">Child Menu</a>
                <ul class="menu__third-level">
                  <li><a href="#">Grandchild Menu</a></li>
                  <li>
                    <a href="#" class="init-right">Grandchild Menu</a>
                    <ul class="menu__fourth-level">
                      <li><a href="#">Great-Grandchild Menu</a></li>
                      <li><a href="#">Great-Grandchild Menu</a></li>
                      <li><a href="#">Great-Grandchild Menu</a></li>
                    </ul>
                  </li>
                  <li><a href="#">Grandchild Menu</a></li>
                </ul>
              </li>
              <li>
                <a href="#" class="init-right">Child Menu</a>
                <ul class="menu__third-level">
                  <li><a href="#">Grandchild Menu</a></li>
                  <li><a href="#">Grandchild Menu</a></li>
                  <li>
                    <a href="#" class="init-right">Grandchild Menu</a>
                    <ul class="menu__fourth-level">
                      <li><a href="#">Great-Grandchild Menu</a></li>
                      <li><a href="#">Great-Grandchild Menu</a></li>
                      <li><a href="#">Great-Grandchild Menu</a></li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>


          <li class="menu__mega">
            <a href="#" class="init-bottom">Menu mega</a>
            <ul class="menu__second-level">
              <li><a href="#">Child Menu</a></li>
              <li><a href="#">Child Menu</a></li>
              <li><a href="#">Child Menu</a></li>
              <li><a href="#">Child Menu</a></li>
              <li><a href="#">Child Menu</a></li>
              <li><a href="#">Child Menu</a></li>
              <li><a href="#">Child Menu</a></li>
              <li><a href="#">Child Menu</a></li>
              <li><a href="#">Child Menu</a></li>
              <li><a href="#">Child Menu</a></li>
              <li><a href="#">Child Menu</a></li>
              <li><a href="#">Child Menu</a></li>
              <li><a href="#">Child Menu</a></li>
            </ul>
          </li>


          <li class="menu__single">
            <a href="#" class="init-bottom">Menu single</a>
            <ul class="menu__second-level">
              <li><a href="#">Child Menu</a></li>
              <li><a href="#">Child Menu</a></li>
              <li><a href="#">Child Menu</a></li>
            </ul>
          </li>


        </ul>
      </nav>
    </div>


    <!--  Hum    -->
<!--    <div id="ham-menu">
      <ul>
        <li>メニュー1</li>
        <li>メニュー2</li>
        <li>メニュー3</li>
      </ul>
    </div>
    <div id="menu-background"></div>
 -->

    <br>

    <div class="footer">
      <h3>参照元</h3>
      <p><a href="http://theorthodoxworks.com/demo/201502/demo-drop-down-menu-multi-css.html">DropDown</a></p>
      <p><a href="https://q-az.net/hamburger-menu-only-css/">ハンバーガー</a></p>
    </div>
body {
  color: #000;
  font: 15px/1.7 "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", Meiryo, "MS Pゴシック", sans-serif;
  background-color: #f5f5f5;
  text-align: left;
}

a {
  text-decoration: none;
}


/*** base */

.wrapper {
  width: 100%;
  height: 100vh;
  text-align: center;
  font-size: 13px;
  background: #BED6E6;
}

.contents {
  width: 100%;
  height: 100%;
  max-width: 1000px;
  margin: 0 auto;
}

.contents__inner {
  box-sizing: border-box;
  width: 100%;
  margin: 0 auto;
  padding: 50px 24px;
  color: #fff;
  h1 {
    margin-bottom: 30px;
    font-size: 20px;
    font-weight: bold;
  }
}


/*** menu */


/*-------------------------
カスタム
-------------------------*/

@media only screen and (max-width: 640px) {
  .menu {
    flex-direction: column;
    display: none;
    opacity: 0;
    transition: .5s;
    &.open {
      display: block;
      opacity: 1;
      transition: .5s;
    }
  }
  .mod__trg {
    width: 30px;
    height: 30px;
    display: block;
    position: absolute;
    right: 14px;
    top: 15px;
    background-color: #fff;
    border-radius: 5px;
    i {
      display: block;
      width: 20px;
      height: 2px;
      border-radius: 3px;
      background: #000;
      transition: background 0.5s;
      position: relative;
      left: 5px;
      top: 14px;
      &:before,
      &:after {
        content: "";
        display: block;
        width: 20px;
        height: 2px;
        border-radius: 3px;
        background: #000;
        position: absolute;
        transform: rotate(0deg);
        transition: all 0.3s !important;
      }
      &:before {
        transform: translateY(8px);
      }
      &:after {
        transform: translateY(-8px);
      }
    }
    &.is-open {
      i {
        background: #fff;
        &:after {
          transform: translateY(0px) rotate(-45deg);
        }
        &:before {
          transform: translateY(0px) rotate(45deg);
        }
      }
    }
  }
}

@keyframes show {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.menu {
  display: none;
}

.menu.open {
  display: block;
  animation: show .3s linear 0s;
}

.menu {
  position: relative;
  width: 100%;
  height: 50px;
  max-width: 1000px;
  display: flex;
  margin: 0 auto;
  > li {
    flex: 1 1 auto;
    // float: left;
    // width: 25%;
    height: 50px;
    line-height: 50px;
    background: rgb(29, 33, 19);
    a {
      // display: block;
      color: #fff;
      &:hover {
        color: #999;
      }
    }
  }
}

.menu__none:hover,
.menu__multi:hover,
.menu__mega:hover,
.menu__single:hover {
  background: #072A24;
  -webkit-transition: .2s ease;
  transition: .2s ease;
}

.menu__second-level li,
.menu__third-level li {
  border-top: 1px solid #111;
}

.menu__second-level li a:hover {
  background: #111;
}

.menu__third-level li a:hover {
  background: #2a1f1f;
}

.menu__fourth-level li a:hover {
  background: #1d0f0f;
}

.init-bottom:after {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  margin: 0 0 0 15px;
  border-right: 1px solid #fff;
  border-bottom: 1px solid #fff;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.menu {
  &:before {
    content: "";
    display: table;
  }
  &:after {
    content: "";
    display: table;
    clear: both;
  }
  *zoom: 1;
  > .menu__single {
    position: relative;
  }
}


/**
 * single menu
 */

.menu__single {
  .menu__second-level {
    position: absolute;
    top: 40px;
    width: 100%;
    background: #072A24;
    -webkit-transition: .2s ease;
    transition: .2s ease;
    visibility: hidden;
    opacity: 0;
  }
  &:hover > .menu__second-level {
    top: 50px;
    visibility: visible;
    opacity: 1;
  }
}


/**
 * multi menu
 */

.menu > .menu__multi {
  position: relative;
}

.menu__multi {
  .menu__second-level {
    position: absolute;
    top: 40px;
    width: 100%;
    background: #072A24;
    -webkit-transition: all .2s ease;
    transition: all .2s ease;
    visibility: hidden;
    opacity: 0;
    z-index: 1;
  }
  &:hover .menu__second-level {
    top: 50px;
    visibility: visible;
    opacity: 1;
  }
  .menu__second-level li {
    position: relative;
    &:hover {
      background: #111;
    }
    .menu__third-level {
      position: absolute;
      top: -1px;
      left: 100%;
      width: 100%;
      background: #111;
      -webkit-transition: all .2s ease;
      transition: all .2s ease;
      visibility: hidden;
      opacity: 0;
    }
    &:hover .menu__third-level {
      visibility: visible;
      opacity: 1;
    }
    .menu__third-level li {
      position: relative;
      &:hover {
        background: #2a1f1f;
      }
      .menu__fourth-level {
        position: absolute;
        top: -1px;
        left: 100%;
        width: 100%;
        background: #2a1f1f;
        -webkit-transition: all .2s ease;
        transition: all .2s ease;
        visibility: hidden;
        opacity: 0;
      }
      &:hover .menu__fourth-level {
        visibility: visible;
        opacity: 1;
      }
    }
  }
}

.init-right:after {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  margin: 0 0 0 15px;
  border-right: 1px solid #fff;
  border-top: 1px solid #fff;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}


/**
 * mega menu
 */

.menu__mega {
  .menu__second-level {
    position: absolute;
    top: 40px;
    left: 0;
    box-sizing: border-box;
    width: 100%;
    padding: 20px 2%;
    background: #072A24;
    -webkit-transition: all .2s ease;
    transition: all .2s ease;
    visibility: hidden;
    opacity: 0;
    z-index: 1;
  }
  &:hover .menu__second-level {
    top: 50px;
    visibility: visible;
    opacity: 1;
  }
  .menu__second-level > li {
    float: left;
    width: 32%;
    border: none;
    &:nth-child(3n+2) {
      margin: 0 1%;
    }
  }
}


/* -------------------------
ハンバーガーメニュー部分 -------------------------*/

// #ham-menu {
//  background-color: #fff;
//  /*メニュー背景色*/
//  box-sizing: border-box;
//  height: 100%;
//  padding: 10px 40px;
//  /*メニュー内部上下左右余白*/
//  position: fixed;
//  right: -300px;
//  /*メニュー横幅①と合わせる*/
//  top: 0;
//  transition: transform 0.3s linear 0s;
//  /*0.3s は変化するのにかかる時間*/
//  width: 300px;
//  /*メニュー横幅①*/
//  z-index: 1000;
//  &::before {
//    background-color: #fff;
//    /*ボタン部分背景色*/
//    border-radius: 0 0 0 10px;
//    /*左下角丸*/
//    color: #333;
//    /*アイコン(フォント)色*/
//    content: "≡";
//    /*メニューアイコン*/
//    display: block;
//    font-size: 50px;
//    /*アイコン(フォント)サイズ*/
//    height: 50px;
//    line-height: 50px;
//    /*縦位置中央化*/
//    position: absolute;
//    right: 100%;
//    text-align: center;
//    top: 0;
//    width: 50px;
//  }
// }

/*メニューアイコン部分は疑似要素で*/


/*透過背景部分*/

// #menu-background {
//  background-color: #333;
//  /*黒背景部分背景色*/
//  display: block;
//  height: 100%;
//  opacity: 0;
//  position: fixed;
//  right: 0;
//  top: 0;
//  transition: all 0.3s linear 0s;
//  /*0.3s は変化するのにかかる時間*/
//  width: 100%;
//  z-index: -1;
// }

/*hover 時の処理*/

#ham-menu:hover {
  transform: translate(-300px);
  /*メニュー横幅①と合わせる*/
  + #menu-background {
    opacity: 0.5;
    /*黒背景部分透過度*/
    z-index: 999;
  }
}

.footer {
  color: #999;
  a {
    color: #999;
  }
}
View Compiled
$(document).ready(function() {
  $(".mod__trg").click(function() {
    if ($(".menu").hasClass("open")) {
      $('.menu').removeClass("open");
      $(this).removeClass("is-open");
    } else {
      $('.menu').addClass("open");
      $(this).addClass("is-open");
    }
  });
});

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js