多段メニューと階層型ナビゲーションの装飾方法を完全ガイド!初心者でもわかるCSSデザイン
生徒
「ホームページのメニューで、マウスを合わせるとさらに細かい項目がパッと出てくる多段メニューや階層型ナビゲーションを作るにはどうすればいいですか?」
先生
「多段メニューや階層型ナビゲーションは、HTMLの構造とCSSのスタイリングを組み合わせることで、綺麗でおしゃれに装飾することができますよ。」
生徒
「具体的にはどのようにCSSを書けばいいのか教えてください。」
先生
「それでは、基本的な書き方と大切なポイントを順番に見ていきましょう!」
1. 多段メニューと階層型ナビゲーションとは何かを初心者向けに解説
インターネットのホームページを見るときに、画面の上部にあるメニューにマウスの矢印を合わせると、その下にさらに別の小さな項目がずらりと現れる仕組みを見たことがある方は多いでしょう。これを多段メニューや階層型ナビゲーションと呼びます。例えるなら、大きなデパートのフロア案内図のようなものです。1階という大きな階層の中に、さらに婦人服売り場や紳士服売り場という細かいセクションが分かれているように、たくさんの情報を綺麗に整理して見やすくするために使われます。
プログラミングをこれから学ぶ方や、パソコンを触ったことがない方にとっても、たくさんのページがあるホームページを上手に整理整頓するためのこの技術は、とても重要で楽しいステップとなります。CSSというデザイン専用の言葉を使うことで、ただの文字の集まりだったメニューを、まるで本物のアプリのように滑らかで使いやすい形に装飾することができるようになります。ここでは、その具体的な仕組みやスタイルの当て方をやさしく紐解いていきます。
2. ドロップダウンメニューの基本構造とCSSの役割
多段メニューの中でも特によく使われるのが、上から下にメニューが落ちてくるように表示されるドロップダウンメニューです。この仕組みを作るためには、HTMLという骨組みの中でリストタグと呼ばれる項目を入れ子、つまり箱の中にさらに小さな箱を入れるような形で組み立てる必要があります。そしてCSSとは、その入れ子になった箱の大きさを整えたり、普段は隠しておいてマウスが乗ったときだけパッと表示させたりするための魔法の杖のような役割を果たします。
例えるなら、普段は引き出しの中にしまってある道具を、必要なときだけスッと取り出せるようにするようなものです。ここでは、初心者の方でも迷わずに進められるように、実際のコードを見ながら基本的なスタイルの当て方を順を追って確認していきましょう。
3. 階層メニューの基本デザインと背景色の設定
まずは、多段メニューの基本となる一段目の親メニューと、その下に隠れている二段目の子メニューの基本的なデザインをCSSで整えていきましょう。メニュー全体に綺麗な背景色をつけたり、文字の間隔を整えたりすることで、パッと見たときにどこがボタンなのかがすぐに分かるようになります。
ここで、初心者の方でもすぐに試せる、基本的な階層メニューのCSSとHTMLのコードを見てみましょう。
<style>
.menu-container {
list-style: none;
padding: 0;
margin: 0;
background-color: #343a40;
}
.menu-item {
position: relative;
display: inline-block;
}
.menu-link {
display: block;
padding: 12px 20px;
color: #ffffff;
text-decoration: none;
}
</style>
<ul class="menu-container">
<li class="menu-item"><a href="#" class="menu-link">ホーム</a></li>
</ul>
ブラウザ表示
上記のコードでは、メニューの背景に落ち着いた暗い色を指定し、文字を白色にすることでハッキリと読みやすい見た目を作っています。このように、基本の部分をしっかりと整えることが美しいナビゲーション作りの第一歩となります。
4. マウスホバーで子メニューを表示させる仕組み
多段メニューの最大の特徴は、普段は隠れている二段目の子メニューが、マウスの矢印を上に乗せたときにだけ現れるという動きです。CSSでは、このマウスを乗せる動作をホバーと呼び、特別な指定をすることで瞬時に表示を切り替えることができます。
ここで、マウスホバーと連動して下層メニューが現れるコードの例を見てみましょう。
<style>
.sub-menu {
display: none;
position: absolute;
top: 100%;
left: 0;
list-style: none;
padding: 0;
background-color: #495057;
min-width: 150px;
}
.menu-item:hover .sub-menu {
display: block;
}
.sub-link {
display: block;
padding: 10px 15px;
color: #ffffff;
text-decoration: none;
}
</style>
<ul class="menu-container">
<li class="menu-item">
<a href="#" class="menu-link">サービス案内</a>
<ul class="sub-menu">
<li><a href="#" class="sub-link">Web制作</a></li>
</ul>
</li>
</ul>
ブラウザ表示
このプログラムでは、普段は非表示になっている子メニューに対して、親の項目にマウスが乗ったときだけ表示する命令を与えています。これにより、必要なときだけ情報がスマートに飛び出す洗練されたデザインが完成します。
5. 階層が深くなったときのデザイン調整と見やすさの工夫
ホームページの規模が大きくなると、二段目だけでなく三段目といったさらに深い階層のメニューが必要になることがあります。階層が深くなればなるほど、どこを指しているのかが分からなくなったり、画面が見づらくなったりしがちです。そのため、子メニューが現れる方向にわずかにずらしたり、枠線を綺麗に整えたりして、視覚的な迷子を防ぐ工夫が大切になります。
ここで、三段目までの深さを持つメニューを綺麗に整えるためのCSSコードの例を見てみましょう。
<style>
.deep-menu {
display: none;
position: absolute;
top: 0;
left: 100%;
list-style: none;
padding: 0;
background-color: #6c757d;
min-width: 140px;
}
.sub-item:hover .deep-menu {
display: block;
}
.deep-link {
display: block;
padding: 10px;
color: #ffffff;
text-decoration: none;
}
</style>
<ul class="menu-container">
<li class="menu-item">
<a href="#" class="menu-link">詳細情報</a>
<ul class="sub-menu">
<li class="sub-item">
<a href="#" class="sub-link">カテゴリ別</a>
<ul class="deep-menu">
<li><a href="#" class="deep-link">最新記事</a></li>
</ul>
</li>
</ul>
</li>
</ul>
ブラウザ表示
上記のコードでは、右側にスライドするように三段目のメニューが出現する仕組みを作っています。このように丁寧な位置調整を行うことで、どれだけ情報が増えてもユーザーが迷わない快適なナビゲーションを実現することができます。
6. スマホ対応を意識したアコーディオン式メニューの装飾
パソコンの画面ではマウスを乗せるだけで簡単に開く多段メニューですが、画面の小さなスマートフォンではマウスが存在しないため、別の工夫が必要になります。そこでスマートフォン向けには、タップすると下へニョキっと伸びるアコーディオン式と呼ばれる開閉型のデザインをCSSで設定するのが一般的です。
ここで、スマートフォンでの表示を想定した縦長の階層メニューのコード例を見てみましょう。
<style>
.mobile-menu {
list-style: none;
padding: 0;
background-color: #f8f9fa;
border: 1px solid #dee2e6;
}
.mobile-link {
display: block;
padding: 12px 16px;
color: #212529;
text-decoration: none;
border-bottom: 1px solid #dee2e6;
}
.mobile-sub {
list-style: none;
padding-left: 20px;
background-color: #e9ecef;
}
</style>
<ul class="mobile-menu">
<li><a href="#" class="mobile-link">メニュー項目</a>
<ul class="mobile-sub">
<li><a href="#" class="mobile-link">サブ項目</a></li>
</ul>
</li>
</ul>
ブラウザ表示
このプログラムを使うことで、指で押しやすい大きなサイズ感を保ちながら、階層構造をわかりやすく縦方向に整理して表示させることができます。デバイスの大きさに合わせて柔軟にデザインを変えることが、現代のホームページ作りでは非常に大切です。
7. アニメーション効果を加えた滑らかなメニューの仕上げ
最後に、多段メニューが開閉するときの動きを、パッと切り替わるだけでなくフワッと滑らかに変化するように装飾してみましょう。CSSには、変化する時間をゆっくりにしたり、滑らかな動きをつけたりするトランジションという便利な機能が備わっています。例えるなら、重い扉をガチャンと開けるのではなく、自動ドアがスーッと静かに開くような心地よさを演出することができます。
最後に、滑らかな動きを取り入れた最後のメニューのコード例を見てみましょう。
<style>
.smooth-link {
display: block;
padding: 10px 18px;
color: #495057;
background-color: #ffffff;
text-decoration: none;
transition: background-color 0.3s ease, color 0.3s ease;
}
.smooth-link:hover {
background-color: #0d6efd;
color: #ffffff;
}
</style>
<nav>
<a href="#" class="smooth-link">お問い合わせ</a>
</nav>
ブラウザ表示
このように、基本のルールをしっかりと守りながら丁寧なCSSの装飾を積み重ねていくことで、誰にとっても使いやすく、Googleの検索エンジンからも高く評価される素晴らしい多段メニューを作り上げることができるようになります。
【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー
「魅せる力」をコードで実現。CSS3でモダンWebデザインのプロトタイピングを。
本講座では、単に色を変えるだけではなく、「ユーザーを迷わせないUIデザイン」と「崩れないレイアウト設計」の本質を学びます。最新のCSS3とモダンなレイアウト手法を通じて、プロの現場で通用する「美しさと機能性を両立した実装力」を最短距離で習得します。
具体的なワークショップ内容と環境
【つくるもの】
HTMLで作成した骨組みに対し、商用サイトでも採用される「スタイリッシュなカード型UI」や「レスポンシブなナビゲーション」を構築します。色の選定基準や余白(ホワイトスペース)の黄金比など、デザインの理論をコードに落とし込む工程を体験してください。
【開発環境】
フロントエンド開発の標準であるVisual Studio Code (VS Code)を継続使用。CSSの記述を効率化するプラグインや、ブラウザのデベロッパーツール(検証機能)を駆使して、リアルタイムでデザインを微調整するプロのワークフローを再現します。
この60分で得られる3つの技術資産
要素の横並びや中央揃えを自由自在に操り、どんなデバイスでも崩れないレスポンシブな配置術を完全理解します。
後から修正しやすい「壊れにくいコード」の書き方を伝授。プロの現場で必須となる命名規則の考え方を学びます。
画像の最適化や軽量な装飾技法など、ページの表示速度を落とさずに高級感のある演出を行うテクニックを習得します。
※本講座は、HTMLの基礎を終えた後のステップアップ講座です。Webデザイナー、UIデザイナー、フロントエンドエンジニアへの道を切り開く「魅せる技術」を、モクモク独自のパーソナル指導で着実に定着させます。
リラックスしながら、学ぶことが大切です。しっかりと基礎を理解しましょう!
各回少人数・マンツーマン形式で徹底サポート
このセミナーの詳細・お申し込みはこちら