セクションしたい(section)

<article>
    <h1>記事のタイトル</h1>

    <section>
        <h2>はじめに</h2>
        <p>本文...</p>
    </section>

    <section>
        <h2>使い方</h2>
        <p>本文...</p>
    </section>
</article>

sectionタグは、見出しを持つ内容のまとまり(章・節)を表すタグです。 articleの中だけでなく、body直下やmain、asideの中でも使えます。

長い文書を意味のあるかたまりに区切るときに使います。 見出し(h1〜h6)が付けられるならsection、 付けられないならdivを使うのがセマンティクス的に適切です。

ランディングページしたい

<body>
    <header>...</header>

    <main>
        <section id="features">
            <h2>特徴</h2>
            <p>...</p>
        </section>

        <section id="pricing">
            <h2>料金プラン</h2>
            <p>...</p>
        </section>

        <section id="faq">
            <h2>よくある質問</h2>
            <p>...</p>
        </section>
    </main>

    <footer>...</footer>
</body>

サービス紹介ページのように、1ページを「特徴」「料金」「FAQ」などのブロックに分ける場合は、それぞれをsectionタグで囲みます。

idを付けて、ページ内リンク(<a href="#pricing">)のジャンプ先にできます。

一覧ページをカテゴリ分類したい

<main>
    <h1>お知らせ</h1>

    <section>
        <h2>プレスリリース</h2>
        <ul>
            <li><a href="#">...</a></li>
        </ul>
    </section>

    <section>
        <h2>イベント情報</h2>
        <ul>
            <li><a href="#">...</a></li>
        </ul>
    </section>
</main>

記事一覧やお知らせページをカテゴリごとに分けるときにもsectionが使えます。 sectionの中にarticleを並べることもできます。

サイドバーを分類したい

<aside class="sidebar">
    <section>
        <h2>カテゴリ</h2>
        <ul>...</ul>
    </section>

    <section>
        <h2>月別アーカイブ</h2>
        <ul>...</ul>
    </section>
</aside>

ブログのサイドバーでは、「カテゴリ別」「月別アーカイブ」などの小さなブロックに分類するときにもsectionが使えます。

使い分けたい(div / section / article)

        graph TD
    A[要素をまとめたい] --> B{見出しがある}
    B -->|いいえ| DIV[div]
    B -->|はい| C{単体で完結できる}
    C -->|いいえ| SEC[section]
    C -->|はい| ART[article]

    

divは意味を持たないブロック要素です。 ただの装飾やスクリプトのために要素をまとめるときに使います。

sectionは、ある程度の意味のあるまとまりを表すブロック要素です。 それぞれのセクションには必ず見出し(h1〜h6)を付ける必要があります。

articleは、単体で完結する内容のまとまりを表すブロック要素です。

ヒント

見出しは付くけれど「章」と呼ぶには弱い程度のまとまりなら、sectionにせずdivのままでかまいません。

リファレンス