JavaScript | HTML / CSS 連携:リスト・表組み - ddタグ

JavaScript JavaScript
スポンサーリンク

dd 要素は「ラベルに対する“中身・説明側”を表すタグ」

<dd>
「これは“ラベルの中身・説明・値”ですよ」
と示すためのタグです。

単体では使わず、必ず <dl> の中で
「ラベル(dt)」「その中身(dd)」
というペアの“中身側”を担当します。

ざっくり言うと、

  • dl … ラベルと中身のペアの“一覧の箱”
  • dt … ラベル・項目名・用語
  • dd … その説明・値・内容(=今話しているやつ)

という役割分担です。


dl・dt・dd の関係をもう一度整理する

「ラベル:値」の“値側”が dd

全体像はこうでした。

<dl>
  <dt>名前</dt>
  <dd>山田太郎</dd>

  <dt>職業</dt>
  <dd>Web エンジニア</dd>
</dl>

ここでの意味は、

  • 「名前」というラベル(dt) → 「山田太郎」という中身(dd)
  • 「職業」というラベル(dt) → 「Web エンジニア」という中身(dd)

<dd> は、
「dt で示されたラベルに対する“答え・中身・説明”」
を表す要素です。

<dl> 全体が「ラベルと中身の一覧」
その中で、dt が「ラベル」、dd が「ラベルに対応する中身」
という構造になっています。


プロフィールでの dd の役割

「項目名:値」の“値”を全部 dd にする

プロフィール情報は、
dd の典型的な使いどころです。

<dl>
  <dt>名前</dt>
  <dd>山田太郎</dd>

  <dt>職業</dt>
  <dd>Web エンジニア</dd>

  <dt>趣味</dt>
  <dd>コーヒー、読書、散歩</dd>
</dl>

ここで dd はすべて「値・中身」です。

名前 → 山田太郎
職業 → Web エンジニア
趣味 → コーヒー、読書、散歩

CSS で「左に dt、右に dd」というレイアウトにすると、
よくある“項目名:内容”のプロフィール表になります。

dl {
  display: grid;
  grid-template-columns: 120px 1fr;
  row-gap: 4px;
}

dt {
  font-weight: bold;
}

dd {
  margin: 0;
}

dd を「中身専用タグ」として使うことで、
HTML の意味も、見た目の構造も、きれいに揃います。


商品スペックや設定画面での dd

スペック表の「値」側を dd にする

<dl>
  <dt>サイズ</dt>
  <dd>幅 120cm × 奥行き 60cm × 高さ 70cm</dd>

  <dt>素材</dt>
  <dd>オーク無垢材</dd>

  <dt>耐荷重</dt>
  <dd>80kg</dd>
</dl>

ここでも dd は
「サイズの中身」「素材の中身」「耐荷重の中身」
という“値側”を担当しています。

入力内容の確認画面にも使える

フォーム送信前の確認画面などでも、
「ラベル:入力内容」の形で dd が活躍します。

<dl>
  <dt>お名前</dt>
  <dd>山田太郎</dd>

  <dt>メールアドレス</dt>
  <dd>taro@example.com</dd>

  <dt>お問い合わせ内容</dt>
  <dd>サービスについて質問があります。</dd>
</dl>

ここで dd は、
ユーザーが入力した“実際の値”を表示する場所です。


1 つの dt に複数の dd をぶら下げるときの dd の意味

「同じラベルに対する説明がいくつもある」パターン

<dl> では、
1 つの dt に対して複数の dd を書けます。

<dl>
  <dt>JavaScript</dt>
  <dd>ブラウザ上で動くプログラミング言語。</dd>
  <dd>サーバーサイドでも使われることがある。</dd>
</dl>

ここで dd は 2 つありますが、
どちらも「JavaScript」というラベルに対する説明です。

このとき dd は、
「同じラベルに対する“複数の説明・補足”」
を表しています。

用語集や FAQ で、
「1 つの用語に対して説明をいくつか並べたい」
というときに便利な構造です。


FAQ での dd:答え側を担当する

Q を dt、A を dd にする

FAQ も「ラベル:内容」の関係なので、
dd は「答え側」を担当します。

<dl>
  <dt>Q. 送料はいくらですか?</dt>
  <dd>A. 全国一律 500 円です。</dd>

  <dt>Q. 支払い方法は何がありますか?</dt>
  <dd>A. クレジットカード、銀行振込、コンビニ払いに対応しています。</dd>
</dl>

ここで dd は、
「質問(dt)に対する答え」
という役割です。

CSS で Q と A の見た目を変えれば、
よくある FAQ セクションになります。

dt {
  font-weight: bold;
  margin-top: 1rem;
}

dd {
  margin: 0 0 0.5rem 0;
}

JavaScript と dd:オブジェクトの「値側」として扱う

オブジェクトのキー:値 → dt:dd にマッピング

JavaScript のオブジェクトを
「ラベル:内容」の一覧として表示したいとき、
キーを dt、値を dd に対応させるのが自然です。

const profile = {
  名前: "山田太郎",
  職業: "Web エンジニア",
  趣味: "コーヒー、読書、散歩",
};

const dl = document.querySelector("#profile");

Object.entries(profile).forEach(([key, value]) => {
  const dt = document.createElement("dt");
  const dd = document.createElement("dd");

  dt.textContent = key;    // ラベル側
  dd.textContent = value;  // 中身側(dd)

  dl.appendChild(dt);
  dl.appendChild(dd);
});
JavaScript

HTML:

<dl id="profile"></dl>

ここで dd は、
「オブジェクトの値(実データ)」を画面に出す役
を担っています。

「キー → dt」「値 → dd」
という対応を覚えておくと、
API レスポンスなどをそのまま“項目名:内容”として表示するときに便利です。


dd を使うか迷ったときの判断基準

「これは“ラベルの中身”か?」と自分に聞く

<dd> を使うかどうか迷ったら、
そのテキストをこう見てください。

「これは“項目名”ではなく、“項目の中身”か?」
「左にラベルを置いて、“:” の右側に来る感じか?」

YES なら dd。
NO なら dt か、普通のテキスト要素(p など)を検討する。

例:

「名前」「職業」「趣味」 → dt
「山田太郎」「Web エンジニア」「コーヒー、読書、散歩」 → dd

「Q. 〜?」 → dt
「A. 〜です。」 → dd

「これは“ラベルに対する答え・中身”か?」
ここが dd を使うかどうかのスイッチです。


初心者として「dd タグ」で絶対に掴んでほしいこと

<dd> は、
「dl の中で、“ラベルに対する中身・説明・値”を表す要素」 です。

dl … ラベルと内容のペアの一覧
dt … ラベル・項目名・用語
dd … その説明・値・内容

プロフィールの値
スペック表の値
FAQ の答え
用語集の説明

こういった「ラベル側ではなく、中身側」を dd にすると、
HTML の意味が一気にクリアになります。

あなたが dd を書くときに、
「これは“名前”じゃなくて、“名前の中身”だよな?」
と一度自問できるようになったら、
もう dd を“dt とセットで出てくる謎タグ”ではなく、
“ラベルに対する中身を表すための、意味のあるタグ”として扱えている状態です。

タイトルとURLをコピーしました