今回やること
セマンティックHTMLとは、意味に合うタグでページ構造を書くことです。
div だけで作るより、header、main、section、footerなどを使う方が、ページの役割が伝わりやすくなります。
今回は、自己紹介ページをセマンティックHTMLで整理します。
よく使う構造タグ
| タグ | 役割 |
|---|---|
header | ページやセクションの導入部分 |
nav | ナビゲーション |
main | ページの主要コンテンツ |
section | テーマごとのまとまり |
article | 独立して読める記事やカード |
footer | 補足情報や連絡先 |
すべてを毎回使う必要はありません。ページの構造に合うものを選びます。
div だけの例
次のコードでも表示はできますが、構造の意味が読み取りにくいです。
<div>
<div>
<h1>自己紹介</h1>
</div>
<div>
<h2>学習中のこと</h2>
<p>HTMLとCSSを学んでいます。</p>
</div>
<div>
<p>連絡先: example@example.com</p>
</div>
</div>
div は意味を持たない汎用の箱です。必要な場面では便利ですが、最初から全部を div にする必要はありません。
セマンティックHTMLで書く
同じ内容を意味のあるタグで書き直します。
<body>
<header>
<h1>自己紹介</h1>
<p>Web制作を学んでいる高校生です。</p>
</header>
<nav aria-label="ページ内メニュー">
<a href="#learning">学習中のこと</a>
<a href="#goal">目標</a>
</nav>
<main>
<section id="learning">
<h2>学習中のこと</h2>
<p>HTML、CSS、JavaScriptを順番に学んでいます。</p>
</section>
<section id="goal">
<h2>目標</h2>
<p>自分で作ったWebアプリを公開することです。</p>
</section>
</main>
<footer>
<p>連絡先: example@example.com</p>
</footer>
</body>
表示は大きく変わらなくても、HTMLの意味は明確になります。
見出しの順番を守る
セマンティックHTMLでは、見出しの順番も重要です。
よい例:
<h1>自己紹介</h1>
<h2>学習中のこと</h2>
<h2>目標</h2>
避けたい例:
<h1>自己紹介</h1>
<h4>学習中のこと</h4>
<h2>目標</h2>
文字サイズを変えるために見出しレベルを飛ばすのは避けます。見た目はCSSで調整します。
よくあるミス
| ミス | 問題 | 修正 |
|---|---|---|
main が複数ある | 主要コンテンツが曖昧 | 基本は1ページに1つ |
nav に関係ないリンクを入れる | ナビゲーションの意味が崩れる | メニュー用リンクだけにする |
| 見出しレベルを飛ばす | 構造が読み取りにくい | h1 から順に使う |
何でも section にする | まとまりの意味が薄くなる | 見出しを付けられる単位で使う |
練習
前回までの自己紹介ページを、次の構造に直してください。
- ページ上部を
header - メイン内容を
main - 「学習中のこと」「目標」を
section - 連絡先を
footer
次のステップ
CSS入門 #1 - 色・文字・余白を変える で、HTMLに見た目を加えます。