Web制作学習シリーズの第3回目です!
今回は、本格的なWebサイトの完成に向けて、ナビゲーションメニューを追加します!ホバー効果でインタラクティブな体験を提供しつつ、Flexboxによる初めての横並び実装を体験してみましょう。
前回(第2回)の記事を完了した時点のWebページだと、まだまだ物足りないですよね?

これで本当にWebサイト?
と思われた方も多いはず。
- プロフェッショナルなナビゲーションメニュー
- 魅力的なホバー効果とアニメーション
- ユーザビリティを重視したWebサイト構造
本格的なポートフォリオサイト(ナビゲーション付き、ホバー効果、Flexboxによる横並び)


第1回でHTML、第2回でCSS、そして今回はナビゲーションメニューを追加。これで基本的なWebサイトの構造が完成!次回からはさらに高度な技術を学んで、完全なポートフォリオサイトを目指します!
シリーズ目次
学習目標
- リストタグ(ul, li)の使い方
- CSSでの横並びレイアウト
- ホバー効果の実装
- ナビゲーションの基本構造
準備:前回のファイルを確認
もしない場合は、以下の内容で作成してください
index.html
<!DOCTYPE html>
<html>
<head>
<title>私のポートフォリオ</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h1>田中太郎</h1>
<h2>Webデザイナー</h2>
<h3>自己紹介</h3>
<p>Web制作に興味があります。</p>
<p>HTMLとCSSを勉強中です。</p>
<h3>趣味</h3>
<p>写真撮影</p>
<p>読書</p>
<p>旅行</p>
<h3>目標</h3>
<p>美しいWebサイトを作れるようになりたいです。</p>
</body>
</html>
styles.css
body {
background-color: #e8f4f8;
font-family: Arial, sans-serif;
margin: 0;
padding: 20px;
max-width: 800px;
margin: 0 auto;
}
h1 {
color: #2c5aa0;
font-size: 36px;
margin-bottom: 10px;
text-align: center;
border-bottom: 3px solid #2c5aa0;
padding-bottom: 10px;
}
h2 {
color: #4a90e2;
font-size: 24px;
margin-bottom: 20px;
text-align: center;
}
h3 {
color: #7bb3e6;
font-size: 18px;
margin-top: 30px;
margin-bottom: 10px;
border-left: 4px solid #7bb3e6;
padding-left: 15px;
}
p {
color: #2c3e50;
font-size: 16px;
line-height: 1.6;
margin-bottom: 10px;
}
体験1:ナビゲーションメニューを追加しよう
ステップ1:HTMLにナビゲーションを追加
index.html
ファイルを以下のように変更してください。
<!DOCTYPE html>
<html>
<head>
<title>私のポートフォリオ</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<!-- ナビゲーション -->
<nav class="navigation">
<ul class="nav-menu">
<li><a href="#home">ホーム</a></li>
<li><a href="#about">自己紹介</a></li>
<li><a href="#skills">スキル</a></li>
<li><a href="#works">作品</a></li>
<li><a href="#contact">お問い合わせ</a></li>
</ul>
</nav>
<h1>田中太郎</h1>
<h2>Webデザイナー</h2>
<h3>自己紹介</h3>
<p>Web制作に興味があります。</p>
<p>HTMLとCSSを勉強中です。</p>
<h3>趣味</h3>
<p>写真撮影</p>
<p>読書</p>
<p>旅行</p>
<h3>目標</h3>
<p>美しいWebサイトを作れるようになりたいです。</p>
</body>
</html>
ステップ2:ブラウザで確認
ファイルを保存して、ブラウザを更新してください。
表示結果


追加した要素
<nav>
: ナビゲーションを表すセマンティックタグ<ul>
: 順序なしリスト<li>
: リストアイテム<a>
: リンク(現在は同じページ内のセクションを指す)
- リストは縦に並んで表示される
- 各メニュー項目はクリック可能なリンク
- セマンティックなHTMLで構造を明確に
体験2:CSSで横並びレイアウトにしよう
ステップ1:ナビゲーションのスタイルを追加
styles.css
ファイルに以下の内容を追加してください。
body {
background-color: #e8f4f8;
font-family: Arial, sans-serif;
margin: 0;
padding: 20px;
max-width: 800px;
margin: 0 auto;
}
/* ナビゲーション */
.navigation {
background-color: #2c5aa0;
padding: 15px 0;
margin-bottom: 30px;
border-radius: 5px;
}
.nav-menu {
list-style: none;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
gap: 20px;
}
.nav-menu li {
margin: 0;
}
.nav-menu a {
color: white;
text-decoration: none;
padding: 10px 15px;
border-radius: 3px;
transition: background-color 0.3s;
}
h1 {
color: #2c5aa0;
font-size: 36px;
margin-bottom: 10px;
text-align: center;
border-bottom: 3px solid #2c5aa0;
padding-bottom: 10px;
}
h2 {
color: #4a90e2;
font-size: 24px;
margin-bottom: 20px;
text-align: center;
}
h3 {
color: #7bb3e6;
font-size: 18px;
margin-top: 30px;
margin-bottom: 10px;
border-left: 4px solid #7bb3e6;
padding-left: 15px;
}
p {
color: #2c3e50;
font-size: 16px;
line-height: 1.6;
margin-bottom: 10px;
}
ステップ2:ブラウザで確認
ファイルを保存して、ブラウザを更新してください。
表示結果


変化を確認
- ナビゲーションが青い背景で表示
- メニュー項目が横並びに配置
- 白い文字で見やすく表示
- 中央揃えでバランスの良いレイアウト
新しく使ったCSSプロパティ
display: flex
: Flexboxレイアウトjustify-content: center
: 中央揃えgap: 20px
: 要素間の間隔list-style: none
: リストマーカーを削除transition
: アニメーション効果
体験3:ホバー効果を追加しよう
ステップ1:ホバー効果を追加
styles.css
ファイルの.nav-menu a
部分を以下のように変更してください。
.nav-menu a {
color: white;
text-decoration: none;
padding: 10px 15px;
border-radius: 3px;
transition: background-color 0.3s, color 0.3s;
}
.nav-menu a:hover {
background-color: #4a90e2;
color: white;
}
ステップ2:ブラウザで確認
ファイルを保存して、ブラウザを更新してください。
ホバー効果を試してみよう
- マウスをメニュー項目に乗せてみる
- 背景色が変わることを確認
- スムーズなアニメーション効果
表示結果(ホバー時)


ホバー効果の仕組み
:hover
: マウスが要素の上にある時の状態transition
: 変化をスムーズにするbackground-color
: 背景色の変更
体験4:ナビゲーションを完成させよう
ステップ1:より洗練されたデザインに
styles.css
ファイルのナビゲーション部分を以下のように変更してください。
/* ナビゲーション */
.navigation {
background: linear-gradient(135deg, #2c5aa0 0%, #4a90e2 100%);
padding: 20px 0;
margin-bottom: 30px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.nav-menu {
list-style: none;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
gap: 30px;
}
.nav-menu li {
margin: 0;
}
.nav-menu a {
color: white;
text-decoration: none;
padding: 12px 20px;
border-radius: 25px;
transition: all 0.3s ease;
font-weight: 500;
position: relative;
}
.nav-menu a:hover {
background-color: rgba(255,255,255,0.2);
color: white;
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.nav-menu a:active {
transform: translateY(0);
}
ステップ2:ブラウザで確認
ファイルを保存して、ブラウザを更新してください。
表示結果




完成したナビゲーション
- グラデーション背景
- 丸みを帯びたボタン
- ホバー時の浮き上がり効果
- 影効果で立体感を演出
新しく使ったプロパティ
linear-gradient
: グラデーション背景box-shadow
: 影効果transform: translateY()
: 上下移動border-radius: 25px
: 丸みを帯びた角:active
: クリック時の状態
実践課題
課題1:ナビゲーションをカスタマイズしよう
- 色を自分の好きな色に変更
- メニュー項目を追加・変更
- ホバー効果をオリジナルに
- フォントを変更
課題2:ドロップダウンメニューを作ってみよう
- サブメニューを追加
- ホバーでサブメニューを表示
- アニメーション効果を追加


課題の解答例
/* カスタマイズ例:緑系のテーマ */
.navigation {
background: linear-gradient(135deg, #2d5016 0%, #4a7c59 100%);
padding: 20px 0;
margin-bottom: 30px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.nav-menu {
list-style: none;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
gap: 30px;
}
.nav-menu a {
color: white;
text-decoration: none;
padding: 12px 20px;
border-radius: 25px;
transition: all 0.3s ease;
font-weight: 500;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
.nav-menu a:hover {
background-color: rgba(255,255,255,0.2);
color: white;
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
まとめ



今回は、ナビゲーションメニューの作成を通じて、Webサイトの基本構造を体験しました。
学んだこと
1.HTMLの構造化
<nav>
タグの使い方<ul>
、<li>
でリスト作成- セマンティックなマークアップ
2.CSSレイアウト
- Flexboxでの横並びレイアウト
- 中央揃えと間隔の調整
- グラデーションと影効果
3.インタラクティブ効果
- ホバー効果の実装
- トランジションアニメーション
- アクティブ状態の設定
重要なポイント
- 構造とデザインの分離: HTMLで構造、CSSでデザイン
- ユーザビリティ: 使いやすさを重視したデザイン
- アニメーション: 適度な動きで体験を向上
次回の予告
- HTML5の基本構造
- セマンティックタグの使い方
- フォーム要素の作成
- 完全なHTML構造のポートフォリオサイト



ここまでお疲れさまでした!
今回の記事を通して、あなたのWebサイトが本格的なナビゲーション付きになりました。次回も一緒に楽しく学習していきましょう!
さらに学びたい方へ
この記事でナビゲーションの基本を体験できましたが、Web制作の学習を本格的に進めたい方には、忍者CODEをお勧めします。
忍者CODEがおすすめの理由
- 業界最安値: 経済産業省の補助金により実質16万円程度で受講可能
- 24時間サポート: 挫折しにくい環境で学習を継続
- 実践的カリキュラム: 実際の案件に直結するスキルを習得
- 現役クリエイターがメンター: 現場で使える知識を直接指導
Web制作を本格的に学びたい方は、忍者CODEの無料体験レッスン


シリーズ目次
コメント