以前にHTMLとCSSのみで簡易的なホームページの作成方法についてまとめました。
※全6回の最終回の記事はこちらになります。↓
その際、ヘッダー部のグローバルメニューは多層化していなかったので、今回はアコーディオンメニュー(ドロップダウンメニュー)を追加してみました。
今回もHTMLとCSSのみ追加記述で可能になります。
階層はシングルとなっていますが、仕組みさえ理解できれば後は応用でさらに多層化する事が可能です。
それでは以前に作成したホームページのファイルを加工したいと思います。
※使用するHTML,CSSファイルは冒頭の過去記事にあります。
目次
HTML
グローバルナビに子メニューを追加
以前作成したindex.htmlを加工します。
5つある項目すべてに子メニューを追加したいと思います。
子メニューはそれぞれ4つ追加します。(名前は全てサブメニューにしてます)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
<div class="nav"> <ul> <li><a href="index.html">home</a> <ul> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> </ul> </li> <li><a href="b.html">あああああ</a> <ul> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> </ul> </li> <li><a href="c.html">いいいいい</a> <ul> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> </ul> </li> <li><a href="d.html">ううううう</a> <ul> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> </ul> </li> <li><a href="e.html">えええええ</a> <ul> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> <li><a href="#">submenu</a></li> </ul> </li> </ul> </div> |
子メニューを追加するには、親の項目のタグ<li></li>内に記述します。
上記でいえば、homeが親の子メニューは4から9行目に記述しています。
つまり、孫メニューを追加するならば、子メニューの<li></li>タグ内に記述すれば良いということです。
HTMLは至って簡単ですね。これで終わりです。続いてCSSでスタイリングしていきます。
CSS
子メニューをスタイリングしアコーディオンメニューにする
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
.nav ul { font-size:0; } .nav ul li { display: inline-block; width: 20%; font-size:16px; border:solid 1px; box-sizing: border-box; position: relative; } .nav ul li a { color: white; text-decoration: none; display: block; padding: 5px 0; } .nav ul li a:hover { color: orange; background: #EEEEEE; font-weight: bold; } .nav li ul { position: absolute; z-index: 9999; width: 100%; } .nav li ul li { display: block; width: 100%; } .nav li ul li a { padding: 5px 0; background: black; } .nav li ul li{ overflow: hidden; height: 0; transition: .2s; } .nav li:hover ul li{ overflow: visible; height: 26px; } |
1から22行目までは前回と同じ記述になります。
※10行目のposition: relative;だけ追加。
nav li ul クラスでposition: absolute;を記述し、子メニューの表示位置を固定させます。
z-index:9999は、メニュー表示時は最前列に出てくる記述になります。(画像やリンクの上に来る感じ)
26から35行目は、子メニューのサイズと配色の記述になります。
最後に、36から44行目が、アコーディオンメニュー(下ににゅっとでてくる)の記述になります。
完成はこちら(クリックで再生)↓
「グローバルナビのアコーディオンメニュー(ドロップダウンメニュー)作成方法」まとめ
簡易的な表示ならHTMLとCSSだけで十分アコーディオンメニューを表現できます。
記述もそこまでややこしくないので、慣れれば簡単だと思います。
次回はレスポンシブのサイドメニュー(スマホ版)をアコーディオン化したいと思います。