タイトル: dd 要素
SEOタイトル: HTML dd 要素 完全ガイド(定義リスト / dt との関係 / 入れ子 / 用語集 / FAQ への応用 / アクセシビリティ)
| この記事の要点 |
|
dd 要素とは
(description details / definition data)は定義リスト()
の中で用語の説明を表す要素です。(用語)と組み合わせて使い、「用語 : 説明」という構造をマークアップするのに使います。
基本構文
<dl>
<dt>HTML</dt>
<dd>HyperText Markup Language の略。ウェブページを構造化するためのマークアップ言語。</dd>
<dt>CSS</dt>
<dd>Cascading Style Sheets の略。HTML 要素の見た目を指定するスタイルシート言語。</dd>
<dt>JavaScript</dt>
<dd>ブラウザで動作するスクリプト言語。ウェブページに動きをつける。</dd>
</dl>
dl / dt / dd の役割
| 要素 | 意味 | 説明 |
|---|---|---|
<dl> | 定義リスト全体 | 用語と説明の集合のコンテナ |
<dt> | 用語(term) | 定義される側のキーワード |
<dd> | 説明(description) | 用語に対する説明 |
1 用語に複数の説明
用語に複数の意味がある場合、
<dl>
<dt>サーバ</dt>
<dd>クライアントの要求に応じてサービスを提供するコンピュータ。</dd>
<dd>そのコンピュータ上で動作するソフトウェア(Web サーバ・DB サーバ等)。</dd>
</dl>
複数の用語に共通の説明
逆に、複数の
<dl>
<dt>HTTP</dt>
<dt>HTTPS</dt>
<dd>Web の通信プロトコル。HTTPS は通信内容を TLS で暗号化したもの。</dd>
</dl>
dd の中に書ける内容
<dl>
<dt>レスポンシブデザイン</dt>
<dd>
<p>画面サイズに応じてレイアウトを変える設計手法。</p>
<ul>
<li>メディアクエリ(@media)</li>
<li>フレキシブルグリッド</li>
<li>フレキシブル画像</li>
</ul>
</dd>
</dl>
デフォルトスタイルと CSS カスタマイズ
margin-left: 40px 程度)。横並びにしたい場合は CSS Grid を使うのが現代の定番です。
/* 横並びの「用語 : 説明」レイアウト */
dl.glossary {
display: grid;
grid-template-columns: max-content 1fr;
column-gap: 1em;
row-gap: 0.5em;
}
dl.glossary dt { font-weight: bold; }
dl.glossary dd { margin: 0; }
FAQ ページの実装
FAQ の質問と回答も
- で表現できます。
- +
- は
- の子(または間接の子)でないと無効。
- なしの
- は?
- dl 要素 — 定義リスト全体
- dt 要素 — 用語側
- ul 要素 / ol 要素 — 並列リスト
- table 要素 — 多列データ
- details / summary 要素 — アコーディオン FAQ
Q:
A: 仕様違反ではないものの、意味的に成り立ちません。ペアで使うべき。Q:
- は SEO に良い?
A: 検索エンジンは構造を理解しやすくなりますが、「dl にすればランキングが上がる」というほどの効果はありません。適切な意味付けとして使うのが本筋です。関連
<details> + <summary> でアコーディオン化する手法もありますが、純粋なリストとしてマークアップしたい場合は - が最適です。
<dl class="faq">
<dt>Q. 商品到着までの日数は?</dt>
<dd>A. 通常 2 〜 3 営業日です。</dd>
<dt>Q. 返品は可能ですか?</dt>
<dd>A. 商品到着後 7 日以内であれば返品可能です。</dd>
</dl>
アクセシビリティ
スクリーンリーダーは
- を「定義リスト、3 件」のように読み上げ、各項目を「用語 → 説明」の対として扱います。情報の意味的なペア構造を維持できるため、div / p で組むより遥かに親切です。
ul / table との使い分け
| 構造 | 使い所 |
|---|---|
| 並列項目のリスト |
| 「キー : 値」「用語 : 説明」のペア |
たとえば「メニュー項目 : 価格」のような1 対 1 のペアは
|