sectionとdivを使いこなして、ワンランク上のWebサイトを作ろう!

2024-04-02

HTMLにおける「section」と「div」の違い

意味

  • section: 文書を論理的に独立したセクションに分割します。各セクションは、見出しと本文で構成されます。
  • div: 特に意味を持たずに、ブロックレベルの要素を囲みます。

例:

<section>
  <h2>第一章 はじめに</h2>
  <p>この文書は、... について説明します。</p>
</section>

<section>
  <h2>第二章 ...</h2>
  <p>...</p>
</section>

使い分け

  • section:
    • 文書を章、節、あるいは独立した内容に分割する場合
    • 見出しと本文で構成されるセクションを区別する場合
  • div:
    • 特に意味を持たずに、レイアウトやデザインのために要素を囲む場合
    • section要素で表現できない複雑な構造を構築する場合
  • サイドバーやフッターなど、文書の構造とは関係なくレイアウトのために要素を囲む場合
  • 画像ギャラリーやタブメニューなど、複雑な構造を構築する場合

補足:

  • section要素は、semantic HTML の一部としてHTML5で導入されました。
  • div要素は、HTML4から存在する汎用的な要素です。
  • section要素とdiv要素は、入れ子にして使用することができます。

まとめ

要素意味使い分け
section文書を論理的に独立したセクションに分割章、節、独立した内容
div特に意味を持たずに、ブロックレベルの要素を囲むレイアウト、デザイン、複雑な構造



<section class="article">
  <h1>記事タイトル</h1>
  <p>記事本文</p>
  <p>...</p>
</section>

<section class="author">
  <h2>著者</h2>
  <p>著者名</p>
  <p>...</p>
</section>

<section class="related-articles">
  <h2>関連記事</h2>
  <ul>
    <li><a href="#">関連記事1</a></li>
    <li><a href="#">関連記事2</a></li>
    <li><a href="#">関連記事3</a></li>
  </ul>
</section>

例2:商品ページ

<section class="product-info">
  <h1>商品名</h1>
  <img src="product-image.jpg" alt="商品画像">
  <p>商品説明</p>
  <p>...</p>
</section>

<section class="product-reviews">
  <h2>レビュー</h2>
  <ul>
    <li>
      <p>レビュー1</p>
      <p>...</p>
    </li>
    <li>
      <p>レビュー2</p>
      <p>...</p>
    </li>
    <li>
      <p>レビュー3</p>
      <p>...</p>
    </li>
  </ul>
</section>

<section class="related-products">
  <h2>関連商品</h2>
  <ul>
    <li><a href="#">関連商品1</a></li>
    <li><a href="#">関連商品2</a></li>
    <li><a href="#">関連商品3</a></li>
  </ul>
</section>

例3:ブログページ

<section class="blog-post">
  <h2>ブログ記事タイトル</h2>
  <p>記事本文</p>
  <p>...</p>
</section>

<section class="author">
  <h2>著者</h2>
  <p>著者名</p>
  <p>...</p>
</section>

<section class="comments">
  <h2>コメント</h2>
  <ul>
    <li>
      <p>コメント1</p>
      <p>...</p>
    </li>
    <li>
      <p>コメント2</p>
      <p>...</p>
    </li>
    <li>
      <p>コメント3</p>
      <p>...</p>
    </li>
  </ul>
</section>

<section class="related-posts">
  <h2>関連記事</h2>
  <ul>
    <li><a href="#">関連記事1</a></li>
    <li><a href="#">関連記事2</a></li>
    <li><a href="#">関連記事3</a></li>
  </ul>
</section>

これらのサンプルコードはあくまでも例であり、実際の使用方法は状況によって異なります。




その他の「section」と「div」の使い分け

アクセシビリティ

  • スクリーンリーダーなどの補助技術は、section要素を認識して、ユーザーに文書の構造を伝えることができます。
  • 適切なsection要素の使用は、視覚障碍者などのユーザーが、文書の内容をより理解しやすくなります。

検索エンジン最適化 (SEO)

  • 検索エンジンは、section要素を文書の重要なセクションとして認識し、インデックス化する可能性があります。
  • 適切なsection要素の使用は、検索結果での文書の順位向上に役立つ可能性があります。

コードの読みやすさ

  • 適切なsection要素とdiv要素の使用は、コードをより読みやすく、理解しやすいものにすることができます。
  • コードの構造が明確になることで、メンテナンスや更新が容易になります。

その他の要素

    • article:独立した記事やコンテンツ
    • aside:補足的な情報
    • header:ヘッダー情報
    • footer:フッター情報

「section」と「div」は、それぞれ異なる役割を持つ要素です。それぞれの意味と使い分けを理解することで、HTMLコードをより意味的で、アクセシブルなものにすることができます。


html


HTML/CSSのテクニック:テーブルセルのテキストの折り返しを制御する

方法1: white-space プロパティを使うwhite-space プロパティは、要素内の空白文字の処理方法を指定します。このプロパティに nowrap 値を指定することで、セル内のテキストが折り返されずに一続きで表示されます。方法2: word-break プロパティを使う...


【初心者向け】HTML textarea要素の初期値を簡単設定!デフォルト値を設定する方法

textarea要素にデフォルト値を設定するには、以下の2つの方法があります。value属性を使用するvalue属性は、textarea要素の初期値を指定するために使用されます。この属性の値は、textarea要素内に表示されるテキストになります。...


【保存版】HTMLフォームの入力値をバリデーション!input type="number" の負の値対策

方法 1: min属性を使うinput type="number"には、min属性を使って、入力できる最小値を指定することができます。min属性に0を指定すれば、負の値を入力できなくなります。方法 2: oninputイベントを使うoninputイベントは、入力値が変更されるたびに発生するイベントです。このイベントを使って、入力値が負の場合に、0にリセットすることができます。...


HTMLとCSSでdiv内のボタンを中央に配置する方法を徹底解説!

このチュートリアルでは、HTMLとCSSを使って、div要素内のボタンを中央に配置する方法を説明します。2つの主要な方法を紹介します。方法1: display: flex を使うこの方法は、flexboxレイアウトプロパティを使用して、ボタンを中央に配置するものです。...


MutationObserverやResizeObserverとの比較も!jQueryでウィンドウリサイズを検知する3つの方法

このガイドでは、jQuery を使ってブラウザウィンドウのリサイズを検知し、それに応じて処理を実行する方法を説明します。ウィンドウのリサイズイベントは、レスポンシブな Web サイトを作成したり、ユーザーの画面サイズに合わせてコンテンツを調整したりする際に役立ちます。...


SQL SQL SQL SQL Amazon で見る



HTMLの基本:pタグとdivタグを使いこなして美しい文章レイアウトを構築しよう

<p> タグ:ブラウザは、<p> タグの前後に自動的に改行と余白を挿入します。段落ごとに余白が生まれるため、文章が視覚的に区切られ、読みやすくなります。ブラウザは、<p> タグの前後に自動的に改行と余白を挿入します。段落ごとに余白が生まれるため、文章が視覚的に区切られ、読みやすくなります。