Week 02 / Phase 1: HTML バイブコーディングの土台 — フロントエンドレッスン

テキストを書き表す
見出し・段落・リスト・強調をマスターする

Week 01 では最初のHTMLファイルを作り、<h1><p>でテキストを表示しました。今週はHTMLのテキスト要素を網羅的に学びます。「ただ文字を書く」のと「HTMLで意味を付けて書く」は全く違います。この違いを理解することが、SEOに強く、アクセシブルなWebページを作る第一歩になります。

読了時間: 約20分 公開日: 2026年4月9日 前提知識: Week 01 完了

今週のゴール

見出し(h1h6)の正しい使い分けを理解する。段落(p)・リスト(ul/ol)・強調(strong/em)を自在に使えるようになる。「セマンティック(意味的に正しい)なHTMLを書く」感覚を身体に染み込ませる。最終課題として「料理レシピページ」を1ページ完成させる。

なぜ「正しいタグ」で書く必要があるのか

HTMLは「文章に意味のラベルを貼る」言語だとWeek 01で学びました。でも、「見出しっぽく見えればいいんでしょ?」「太字にすればいいんでしょ?」と思うかもしれません。

全然違います。

あなたが書いたHTMLは、人間だけでなく 3つの「読者」 に読まれます。

  1. ブラウザ — タグに基づいて画面に表示する
  2. Google(検索エンジン) — タグに基づいてページの内容を理解し、検索順位を決める
  3. スクリーンリーダー — 視覚障害者のために、タグに基づいて音声で読み上げる

<h1>タグを使って書いた見出しは、Googleに「このページで最も重要なトピックはこれだ」と伝えます。CSSで見た目を大きくしただけの文字は、Googleには「ただの段落」にしか見えません。

つまり、正しいタグで書くことは SEO(検索エンジン最適化)とアクセシビリティの基礎 です。今週これを身につければ、あなたの作るページは最初から「検索に強く、誰にでも使いやすい」ものになります。

見出しタグ h1〜h6 完全ガイド

HTMLには6段階の見出しタグがあります。h1が最も大きく重要で、h6が最も小さく細かい見出しです。

<h1>ページのメインタイトル</h1>
<h2>大きなセクションの見出し</h2>
<h3>セクション内の小見出し</h3>
<h4>さらに細かい見出し</h4>
<h5>めったに使わない</h5>
<h6>ほぼ使わない</h6>

ルール1: h1 は1ページに1つだけ

<h1>はそのページの「タイトル」です。本で言えば「書名」。1冊の本に書名が2つあったらおかしいですよね。同様に、1ページに<h1>は1つだけにしてください。

<!-- ✅ 正しい: h1 は1つだけ -->
<h1>カレーライスの作り方</h1>
<h2>材料</h2>
<h2>手順</h2>

<!-- ❌ 間違い: h1 が2つある -->
<h1>カレーライスの作り方</h1>
<h1>必要な材料</h1>

ルール2: 階層を飛ばさない

h1 → h2 → h3 の順番で使います。h1 の次にいきなり h3 を使うのはNGです。本の目次で「第1章」の下にいきなり「第1章第3節」が来たら違和感がありますよね。

<!-- ✅ 正しい: 階層が順序通り -->
<h1>カレーライスの作り方</h1>
  <h2>材料(4人分)</h2>
    <h3>具材</h3>
    <h3>調味料</h3>
  <h2>手順</h2>
    <h3>下ごしらえ</h3>
    <h3>煮込み</h3>

<!-- ❌ 間違い: h1 の直後に h3 -->
<h1>カレーライスの作り方</h1>
  <h3>具材</h3>

ルール3: 見出しは「本の目次」のように構造化する

良いHTMLの見出しは、そのまま目次になります。あなたのページのh1h3だけを抜き出したとき、読者がページの内容を理解できるなら、見出しの使い方は正しいです。

プロのテクニック: 見出しを書くとき、まずh1〜h3だけで「目次」を先に作ってから、中身を書き始める。これは実際のWeb制作でもプロがよくやる方法です。この記事自体も同じ方法で書いています。

現実の使用頻度

タグ使用頻度用途
h1★★★★★ページタイトル。1ページ1つ
h2★★★★★大セクション。1ページに3〜8個
h3★★★★小セクション。h2の中に2〜5個
h4★★詳細見出し。長い記事でたまに使う
h5ほぼ使わない
h6まず使わない

段落タグ p と改行 br の違い

<p>は「段落」を意味するタグです。文章のまとまりをひとつの段落として囲みます。

<p>カレーは日本の国民食のひとつです。家庭ごとに味が違い、それぞれの「うちのカレー」があります。</p>
<p>今回は、市販のルーを使わない本格的なスパイスカレーの作り方を紹介します。</p>

改行 br は「やむを得ないとき」だけ

<br>は「改行」です。ただし、段落を分けるために<br>を連打するのは 完全にNG です。

<!-- ❌ 絶対にやってはいけない -->
<p>
カレーは日本の国民食のひとつです。<br>
<br>
今回は本格的なスパイスカレーの作り方を紹介します。<br>
<br>
材料はこちらです。
</p>

<!-- ✅ 正しい -->
<p>カレーは日本の国民食のひとつです。</p>
<p>今回は本格的なスパイスカレーの作り方を紹介します。</p>
<p>材料はこちらです。</p>

<br>を使ってよい場面は 住所や詩のように、1つの意味のかたまり内で改行が必要な場合 だけです。

<!-- ✅ br が適切な場面: 住所 -->
<p>
    東京都渋谷区神宮前1-2-3<br>
    〇〇ビル 5階<br>
    ToolShare Lab
</p>

リスト ul / ol / li

リストはWebページで最も多く使われる構造のひとつです。メニュー、手順、箇条書き——ありとあらゆる場面でリストを使います。

順序なしリスト(ul: unordered list)

「順番は関係ない」項目の一覧には<ul>を使います。

<h3>カレーの材料</h3>
<ul>
    <li>鶏もも肉 300g</li>
    <li>玉ねぎ 2個</li>
    <li>にんじん 1本</li>
    <li>じゃがいも 2個</li>
    <li>カレー粉 大さじ2</li>
</ul>

ブラウザでは各項目の前に「・」(ビュレット)が表示されます。材料は入れる順番が決まっていないのでulが適切です。

順序ありリスト(ol: ordered list)

「順番がある」手順や手順には<ol>を使います。

<h3>カレーの手順</h3>
<ol>
    <li>玉ねぎをみじん切りにする</li>
    <li>鍋にオリーブオイルを熱し、玉ねぎを15分炒める</li>
    <li>鶏肉を加えて表面に焼き色をつける</li>
    <li>カレー粉を加えて1分炒める</li>
    <li>水500mlを加えて20分煮込む</li>
    <li>塩で味を調えて完成</li>
</ol>

ブラウザでは各項目に「1. 2. 3.」と番号が自動的に振られます。手順は順番が大事なのでolが適切です。

リストのネスト(入れ子)

リストの中にリストを入れることもできます。

<ul>
    <li>具材
        <ul>
            <li>鶏もも肉 300g</li>
            <li>玉ねぎ 2個</li>
            <li>にんじん 1本</li>
        </ul>
    </li>
    <li>調味料
        <ul>
            <li>カレー粉 大さじ2</li>
            <li>塩 小さじ1</li>
            <li>黒こしょう 少々</li>
        </ul>
    </li>
</ul>

判断基準: 「項目を入れ替えても意味が変わらない」→ ul。「入れ替えたら意味が変わる(手順など)」→ ol。迷ったらulでOKです。

強調 strong と em の違い

テキストを「強調」したいとき、HTMLには2つのタグがあります。

strong — 重要性を示す(太字で表示)

<p>このカレーの最大のポイントは<strong>玉ねぎを15分炒めること</strong>です。</p>

<strong>は「この部分は重要」という意味です。スクリーンリーダーはstrongの部分を「強調して」読み上げます。ブラウザは太字で表示します。

em — 意味の強調(イタリック体で表示)

<p>カレーは<em>日本の</em>国民食です。</p>

<em>は「ここに力点がある」という意味です。上の例では「インドではなく日本の」というニュアンスを強調しています。ブラウザはイタリック体で表示しますが、日本語ではほぼ太字と同じに見えることが多いです。

b / i は使うな

古いHTMLの参考書には<b>(太字)や<i>(イタリック)が載っていることがあります。これらは「見た目だけ」を変えるタグで、意味を持ちません。

<!-- ❌ 見た目だけ変える(意味がない)-->
<b>重要なテキスト</b>

<!-- ✅ 「重要」という意味を持つ -->
<strong>重要なテキスト</strong>

2026年の現場では、<b><i>は使いません。strongemを使ってください。

知っておくと便利なインライン要素

タグ意味使い方
<a> リンク <a href="https://example.com">リンクテキスト</a>
<code> コード(プログラム) <code>console.log()</code>
<mark> ハイライト(蛍光ペン) <mark>注目テキスト</mark>
<small> 注釈・免責 <small>※価格は税込みです</small>
<del> 取り消し線 <del>旧価格 ¥1,000</del>
<time> 日時 <time datetime="2026-04-09">2026年4月9日</time>
<abbr> 略語 <abbr title="HyperText Markup Language">HTML</abbr>
<blockquote> 引用 <blockquote>引用文</blockquote>

すべてを今すぐ覚える必要はありません。<a>(リンク)は来週の Week 03 で詳しく学びます。今は「こういうタグがあるんだ」と頭の片隅に入れておくだけでOKです。

区切り線 hr

<hr>は「話題の区切り」を表す水平線です。閉じタグは不要です。

<p>ここまでが材料の説明です。</p>
<hr>
<p>ここからは手順を説明します。</p>

見た目の装飾としてではなく、「ここで話題が切り替わる」というセマンティックな意味で使います。

実践: 料理レシピページを作ろう

ここまで学んだ要素を全部使って、1ページ作ります。あなたの好きな料理のレシピページを作ってください。以下は「スパイスカレー」の例です。

完成イメージ(コード全文)

まずはこのコードをAIに作らせてみましょう。できあがったコードを一行ずつ読んで、見出し・リスト・強調がどう使われているかを確かめてください。意味がわかったら、自分の手で書き直してみると理解がさらに深まります。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <title>スパイスカレーのレシピ | 本格派チキンカレー</title>
</head>
<body>
    <h1>本格スパイスカレーの作り方</h1>
    <p>市販のルーを使わない、スパイスから作る本格チキンカレー。<br>
    一度作ったら<strong>もう市販のルーには戻れなくなる</strong>レシピです。</p>

    <h2>材料(4人分)</h2>

    <h3>具材</h3>
    <ul>
        <li>鶏もも肉 300g(一口大に切る)</li>
        <li>玉ねぎ 2個(みじん切り)</li>
        <li>トマト缶 1缶(400g)</li>
        <li>にんにく 2片(すりおろし)</li>
        <li>しょうが 1片(すりおろし)</li>
    </ul>

    <h3>スパイス</h3>
    <ul>
        <li>クミンシード 小さじ1</li>
        <li>ターメリック 小さじ1</li>
        <li>コリアンダーパウダー 大さじ1</li>
        <li>カイエンペッパー 小さじ1/2(辛さ調整)</li>
        <li>ガラムマサラ 小さじ1(仕上げ用)</li>
    </ul>

    <h3>調味料</h3>
    <ul>
        <li>オリーブオイル 大さじ2</li>
        <li>塩 小さじ1〜</li>
        <li>水 300ml</li>
    </ul>

    <hr>

    <h2>作り方</h2>
    <ol>
        <li>鍋にオリーブオイルとクミンシードを入れ、<strong>弱火</strong>で加熱する。パチパチと音がしたらOK。</li>
        <li>みじん切りの玉ねぎを加え、<strong>15分以上</strong>じっくり炒める。<em>ここが最重要ポイント</em>。飴色になるまで根気よく。</li>
        <li>にんにく、しょうがを加えて1分炒める。</li>
        <li>ターメリック、コリアンダー、カイエンペッパーを加えて30秒炒める。焦がさないように注意。</li>
        <li>トマト缶を加え、トマトの形が崩れるまで5分煮る。</li>
        <li>鶏肉を加えて表面に色がつくまで炒める。</li>
        <li>水300mlを加え、蓋をして<strong>弱火で20分</strong>煮込む。</li>
        <li>ガラムマサラを加え、塩で味を調えたら完成。</li>
    </ol>

    <hr>

    <h2>ポイント</h2>
    <ul>
        <li>玉ねぎは<strong>絶対に手を抜かない</strong>。15分炒めるのと5分で終わらせるのでは味が全く違います。</li>
        <li>スパイスは<em>入れすぎより少なめ</em>がコツ。足りなければ後から足せますが、入れすぎは取り返せません。</li>
        <li>一晩寝かせると<mark>さらに美味しくなります</mark>。</li>
    </ul>

    <h2>参考にしたレシピ</h2>
    <blockquote>
        <p>スパイスカレーの基本は「玉ねぎ・トマト・スパイス」の3つだけ。この3つがあれば、世界中のカレーが作れる。</p>
    </blockquote>
    <p><small>※ 分量はお好みで調整してください。</small></p>
</body>
</html>

上のコードをrecipe.htmlというファイル名で保存して、ブラウザで開いてみてください。

確認ポイント: h1が1つ、h2が3つ(材料・作り方・ポイント)、h3が3つ(具材・スパイス・調味料)。ulとolの使い分け。strong, em, mark, blockquote, small の使い分け。全部意味があって使っています。

今週のよくある間違い

ミス1: 見出しを「見た目」で選ぶ

<!-- ❌ 「h3 のサイズがちょうどいいから」で選んではいけない -->
<h3>ページのメインタイトル</h3>

<!-- ✅ 意味で選ぶ。見た目はCSSで後から変えられる -->
<h1>ページのメインタイトル</h1>

見出しの見た目(大きさ)が気に入らなくても、意味的に正しいタグを選ぶ。見た目は来月学ぶCSS で自由に変えられます。今は「正しい構造」だけに集中してください。

ミス2: リストを使うべき場所で p + br を使う

<!-- ❌ -->
<p>材料:<br>
玉ねぎ 2個<br>
にんじん 1本<br>
じゃがいも 2個</p>

<!-- ✅ -->
<h3>材料</h3>
<ul>
    <li>玉ねぎ 2個</li>
    <li>にんじん 1本</li>
    <li>じゃがいも 2個</li>
</ul>

ミス3: strong を乱用する

全部太字にしたら、何も強調されていないのと同じです。本当に重要な部分だけに使ってください。1段落に1〜2箇所が目安。

今週の課題

課題

あなたの好きな料理のレシピページを1ページ作成してください。

必須要件

  1. h1 にレシピ名(1つだけ)
  2. h2 で「材料」「手順」「コツ」の3セクション以上
  3. h3 で材料をさらに分類(メイン材料 / 調味料 等)
  4. ul で材料一覧(順番関係ない)
  5. ol で手順(順番がある)
  6. strong で最重要ポイントを2〜3箇所
  7. em で補足的な強調を1〜2箇所
  8. hr でセクション間の区切り
  9. blockquote で何かを引用(料理本からでも、おばあちゃんの言葉でも)
  10. small で注釈を1箇所

ボーナス課題(余裕がある人向け)

カレーでもパスタでも味噌汁でも何でもOK。自分が好きな料理を選ぶと楽しく書けます。AIに全部任せきりにしないでください。使うならまずAIに叩き台を作らせて、見出しの階層やリストの使い分けが正しいか出力を読んで確認し、自分の手で直してください。間違いに気づいて直せることが、この土台を身につけたという証拠です。

提出前に、AIが作ったコードでよくある間違いも確認しておきましょう。

自己診断テスト

  1. h1h2 の正しい使い分けを説明できますか?
  2. h1 はなぜ1ページに1つだけにすべきですか?(3つの読者の観点で)
  3. pbr の違いは何ですか?br を連打してはいけない理由を説明できますか?
  4. ulol をどう使い分けますか?判断基準を1文で言えますか?
  5. strongem の違いは?bi を使わない理由は?
  6. blockquote はどういう場面で使いますか?
  7. HTMLの見出しだけを抜き出したとき「目次」として成立していれば、構造が正しいと言える理由を説明できますか?

来週の予告 — Week 03: 画像・リンク・テーブル・フォーム入門

来週はいよいよ「テキスト以外の要素」に入ります。画像を表示する<img>、別のページに飛ぶ<a>、データを表にする<table>、ユーザーに入力してもらう<form>

これら4つが使えるようになると、「ちゃんとしたWebページ」を作れるようになります。今週のうちに課題のレシピページを完成させて、来週に備えましょう。

Week 02 完了おめでとうございます。「正しいタグで書く」感覚、掴めましたか? 今日学んだことは、これから先ずっと使う土台になります。「見た目」ではなく「意味」で書く。これがプロのHTMLです。