【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」というサイトで確認できますので使ってみてください。
とても便利なので確認したいときなどに使ってみてください!
ちなみにこのサイトで上記のコードを書けば、以下のような感じで見ることができます。
最後に
今回は、CSSのみでドロップダウンメニューを作成する方法を書きました。
JavaScriptを使わなくても動きを出せるのはすごいですね!
もしCSSのみで実装したい場合は参考にしてください。
それでは、また!