章・節・項などのセクションを表す要素
HTML5よりも前のHTMLやXHTMLでは、見出しを表す<h1>
要素 〜 <h6>
要素を使って話題の階層を推測し判断していましたが、HTML5からは、そのような章・節・項などのセクションを明示的に表す要素が追加されました。なお、これらの要素はセクショニング・コンテンツというカテゴリに分類されます。
要素名 | 意味・役割 |
---|---|
<section> |
章・節・項などの一般的なセクションを表す要素 |
<article> |
内容が完結している独立したセクションを表す要素 |
<aside> |
メインコンテンツに含まれない補足的なセクションを表す要素 |
<nav> |
主要なナビゲーションのセクションを表す要素 |
section要素 HTML5で追加
<
要素は、章・節・項などの一般的なセクションを表す要素です。 基本的な話題の階層は、この
<section>
要素を使います。
- カテゴリ
- コンテンツ・モデル
- フロー・コンテンツ
サンプル
<section>
要素はこのように、各セクションごとにマークアップします。そして、<section>
要素の最初の見出しがそのセクションの見出しとなります。本の目次のように階層構造を意識しましょう。
article要素 HTML5で追加
<
要素は、ブログやニュース記事などの独立したセクションを表す要素です。 具体的には、
<article>
要素でマークアップした部分だけを抜き取っても、その部分が独立したコンテンツとして成り立つ必要があります。
<section>
要素との使い分けが難しいですが、そのセクションが独立できるコンテンツであれば<article>
要素、そうでなければ<section>
要素でマークアップしましょう。
- カテゴリ
- コンテンツ・モデル
- フロー・コンテンツ
サンプル
上記は、ブログ記事を<article>
要素でマークアップした例です。
<article>
要素はこのように、ブログやニュースの記事のように独立したコンテンツのセクションに利用します。また、上記の例のようにブログ記事に対するコメントなどにも利用します。 はじめのうちは、
<section>
要素との使い分けが難しいですが、今は難しく考えずブログ記事や、そのコメント、ニュース記事などのセクションには、<article>
要素を使うと覚えましょう。
aside要素 HTML5で追加
<
要素は、メインコンテンツからは切り離すことが可能な補足的なセクションを表す要素です。 具体的には、
補足情報や余談、広告やサイドバーの補足コンテンツなどに利用します。なお、<article>
要素内などのメインコンテンツ内で使う場合は、そのメインコンテンツに関連した補足コンテンツに利用します。
- カテゴリ
- コンテンツ・モデル
- フロー・コンテンツ
サンプル
<aside>
要素は上記の例のように補足コンテンツのセクションに利用します。
<article>
要素などのメインコンテンツ内に使う場合は、そのメインコンテンツと関連した情報でなくてはなりません。従って、上記の例にある「スポンサー」という広告のコンテンツは、「メアリーブログ」に対してのスポンサーになるので、<article>
要素内には配置しません。
nav要素 HTML5で追加
<
要素は、主要なナビゲーションを表す要素です。 具体的にはサイトの全ページに一貫して表示されるグローバルナビゲーションなどに利用します。 この
<nav>
要素はページ内でひとつしか使ってはいけないということはありませんが、全てのリンクのリストに使うわけでもありません。あくまで主要なナビゲーションをマークアップします。
- カテゴリ
- コンテンツ・モデル
- フロー・コンテンツ
サンプル
<nav>
要素は上記の例のような主要なナビゲーションに利用します。 よく上記のようなグローバルナビゲーション (サイトの全ページに一貫して表示されている主要なナビゲーション)が、サイトのヘッダー
<nav>
要素でマークアップしましょう。
セクショニング・コンテンツの要素を使ってみよう
それでは、セクショニング・コンテンツの要素を使ってみましょう。
- 上書き保存し、ブラウザで確認 (特に見た目に変化はありません。)
アウトラインを意識しよう
HTML5では、セクションの階層構造を意識することが重要になります。 この階層構造のことを
アウトラインと言い、セクショニング・コンテンツの各要素や、
ヘディング・コンテンツの<h1>
〜 <h6>
要素を使うごとに生成されます。例えば、上記で作成した「index.html」のアウトラインは以下のようになります。
このように、セクションの見出しがアウトラインとなります。従って、本の目次を作るように、このアウトラインを意識したマークアップが必要となります。
アウトラインのルール
アウトラインは、以下のルールで生成されます。
セクショニング・コンテンツの要素がない場合
従来のように、セクショニング・コンテンツの要素を使わない場合は、見出しの要素が現れた時にセクションが始まります。ただし、見出し要素の階層(見出し要素の数字)によって、新たなセクションとして始めるか、サブセクションとして始めるかが異なります、 具体的には、見出し要素の階層が、前の見出し要素と同じ階層か、それより上の階層であれば(数字が小さければ)現在のセクションを終了し、新たなセクションとしてをセクションを始めます。反対に、見出し要素の階層が、前の見出しより下の階層であれば(数字が大きければ)、現在のセクションのサブセクションとして、セクションを始めます。従って、作りたいアウトラインに合わせて適切に<h1>
〜 <h6>
要素を使う必要があります。
セクショニング・コンテンツの要素がある場合
セクショニング・コンテンツの要素がある場合、セクショニング・コンテンツの要素が現れた時に、現在のセクションのサブセクションが始まります。なお、そのセクションの先頭にある見出しが、そのセクションの見出しとなります。 従って、セクショニング・コンテンツの要素を適切に使用していれば、見出しの階層(見出し要素の数字)に関係なくアウトラインを生成出来ます。ただし、セクションの範囲はセクショニング・コンテンツの要素で明示的に示し、その階層に合わせた見出しの要素を使うことが推奨されています。
練習問題
「Chapter19」 -> 「quest」フォルダ内の「index.html」を開いて下記の問題を解いてみましょう。なお、解けた問題は問題文の横のチェックボックスをオンにしましょう。
-
- 文字列「メインメニュー」 〜 文字列「お問い合わせ」
-
- 文字列「Dummyのこだわり」 〜 文字列「社員の給料を徹底的にコストカットします。」
- 文字列「スピード」 〜 文字列「残業や休日出勤を惜しみません。」
- 文字列「クオリティ」 〜 文字列「社員に一切の妥協を許しません。」
- 文字列「プライス」 〜 文字列「社員の給料を徹底的にコストカットします。」
- 文字列「Dummyブログ」 〜 文字列「「ホームページを作れるようになりたい」と言い出しました。…もっと読む」
-
- 文字列「私の息子が当社ホームページの「お問い合わせフォーム」を作成しました。」 〜 文字列「当社ホームページに「お問い合わせフォーム」を作ってくれました。…もっと読む」
- 文字列「私の息子がホームページの勉強を始めました。」 〜 文字列「ホームページを作れるようになりたい」と言い出しました。…もっと読む」
-
- 文字列「関連リンク」 〜 文字列「Cafe Dummy」