正しいHTML構造(ネスト規則)

📝 問題の再掲

Q49: 正しいHTML構造はどれですか?

選択肢:

  • A: <p><div>テキスト</div></p>
  • B: <ul><li>項目</li></ul>(正答)
  • C: <a><a>リンク</a></a>
  • D: <tr><table><td>データ</td></table></tr>

⚠️ よくある間違い

HTMLはエラーが出ずにブラウザが表示してくれるため、間違った構造でも「動いている」と思いがちです。しかしブラウザが内部で自動修正しており、意図しない表示になることがあります。

📖 段階的な説明

ルール1:インライン要素の中にブロック要素は入れられない

<p> はインライン的な扱いで、中に <div>(ブロック要素)は入れられません。

<!-- ❌ p の中に div -->
<p><div>テキスト</div></p>

<!-- ✅ div の中に p -->
<div><p>テキスト</p></div>

ルール2:インタラクティブ要素の入れ子は不可

<a> の中に <a><button> の中に <button> は入れられません。

ルール3:テーブル構造には正しい順序がある

<table><tr><td> の順番を守る必要があります。

ルール4:ul/ol の直下は li のみ

<ul> の直下に置けるのは <li> だけです。

💻 コード例

<!-- ✅ 正しい構造 -->
<ul><li>項目</li></ul>
<table><tr><td>データ</td></tr></table>
<div><p>テキスト</p></div>

<!-- ❌ 間違った構造 -->
<p><div>テキスト</div></p>
<a href="#"><a href="#">リンク</a></a>
<tr><table><td>データ</td></table></tr>

🔗 関連知識

  • 開発者ツールの Elements タブで、ブラウザが自動修正した結果を確認できます
  • W3C Validator(validator.w3.org)でHTMLの正しさをチェックできます

✅ 確認問題

Q: 以下のうち正しいHTML構造はどれ?

A: <p><h2>見出し</h2></p> / B: <div><h2>見出し</h2><p>本文</p></div>

答えを見る

B。p の中に h2(ブロック要素)は入れられません。div の中に h2 と p を並べるのが正しい構造です。

← ドリルに戻る