【HTML】CSSだけでナビゲーションメニューを作成してみる

こんにちは!CODE CLUB965のKです!

今回は、ドロップダウンのナビゲーションメニューをCSSのみで作成してみようと思います。

jQueryを使えば実装することはできますが、理由があってjQueryを使わずに実装したい場合の参考にしてください。

まずはHTMLを記述する

まずは以下のような感じでHTMLを記述します。

<ul id="menu">
  <li><a href="#">Menu1</a>
    <ul>
      <li><a href="#">AAAA</a></li>
      <li><a href="#">BBBB</a></li>
      <li><a href="#">CCCC</a></li>
      <li><a href="#">DDDD</a></li>
    </ul>
  </li>
  <li><a href="#">Menu2</a>
    <ul>
      <li><a href="#">EEEE</a></li>
      <li><a href="#">FFFF</a></li>
      <li><a href="#">GGGG</a></li>
    </ul>
  </li>
  <li><a href="#">Menu3</a>
    <ul>
      <li><a href="#">HHHH</a></li>
      <li><a href="#">IIII</a></li>
    </ul>
  </li>
  <li><a href="#">Menu4</a>
    <ul>
      <li><a href="#">JJJJ</a></li>
    </ul>
  </li>
</ul>

CSSを記述する

次にCSSを記述します。

#menu{
  list-style-type: none;
  width: 500px;
  height: 40px;
  margin: 0 auto;
  padding: 0;
  background: #27c100;
}
#menu li{
  position: relative;
  width: 25%;
  float: left;
  margin: 0;
  padding: 0;
  text-align: center;
}
#menu li a{
  display: block;
  margin: 0;
  padding: 13px 0;
  color: #fff;
  font-size: 14px;
  font-weight: bold;
  line-height: 1;
  text-decoration: none;
}
#menu li ul{
  list-style: none;
  position: absolute;
  top: 100%;
  left: 0;
  margin: 0;
  padding: 0;
}
#menu li:last-child ul{
  left: -100%;
  width: 100%
}
#menu li ul li{
  overflow: hidden;
  width: 200%;
  height: 0;
  color: #fff;
  -moz-transition: .2s;
  -webkit-transition: .2s;
  -o-transition: .2s;
  -ms-transition: .2s;
  transition: .2s;
}
#menu li ul li a{
  padding: 13px 15px;
  background: #27c100;
  text-align: left;
  font-size: 12px;
  font-weight: normal;
}
#menu li:hover > a{
  background: #27c100;
  color: #e0dc62;
}
#menu li:hover ul li{
  overflow: visible;
  height: 38px;
  border-bottom: 1px solid #fff;
}
#menu li:hover ul li:first-child{
  border-top: 0;
}
#menu li:hover ul li:last-child{
  border-bottom: 0;
}

これだけでドロップダウンメニューが作成できます。

実際にどのようなメニューができるかは以下の「CodePen」というサイトで確認できますので使ってみてください。
とても便利なので確認したいときなどに使ってみてください!

https://codepen.io/pen/

ちなみにこのサイトで上記のコードを書けば、以下のような感じで見ることができます。

最後に

今回は、CSSのみでドロップダウンメニューを作成する方法を書きました。

JavaScriptを使わなくても動きを出せるのはすごいですね!
もしCSSのみで実装したい場合は参考にしてください。

それでは、また!

Follow me!