サイトロゴ等身大のWeb制作

HTML/CSS/Fabricjs

CSSでdlのdtとddを横並びにする方法(複数dt/複数dd対応)

イメージ

公開:2020-05-05

更新:

CSSで、HTMLのdlタグのdt(項目)とdd(説明)を横並びにする方法です。

dd部分が長くて複数行になっても高さが自動調節されます。すでにあるHTMLは変更なく可能です。複数dtや複数ddにも対応した方法も書いています。

様々なウィンドウ幅や画面幅に対応するレスポンシブデザインで、デモで実際に検証できます。

ページ内目次

実際の様子(デモ)

実際に、PCでウィンドウ幅を変えたり、スマートフォンなどで縦横を変えてみてください。

2020-03-13
記事「canvasでFabric.jsを使用して図形変更やユーザ操作を便利にする」を更新しました。
2020-04-04
記事「生年から年齢や入学卒業年や長寿祝いを計算する」をアップしました。
2020-05-04
記事「簡単!HTMLの共通部分を別ファイルにして多数ページで共通化」をアップしました。

コードとCSS解説

HTMLのdlの基本的書き方と、dtとddを横並びにするCSSです。HTMLは、すでにあればそのままで変更の必要はありません。

<dl>
  <dt>項目</dt>
  <dd>説明説明説明説明説明</dd>
  <dt>項目</dt>
  <dd>説明説明説明説明説明</dd>
</dl>
dl dt { float: left; }
dl dd { margin-left: 120px; }
1
横並びにします。
2
項目の幅です。最大文字数に応じて変えてください。

複数ddや複数dtに対応した方法

複数ddの場合

話の便宜上、dtではなく先ずはdtの話です。こちらのデモをお試しください。

項目
説明1:一つの定義語(dt)に対し、複数の定義説明(dd)を当てることが認められています。
説明2:この例では1つの項目に対して、説明1と2が割り当てられています。
<dl>
  <dt>項目</dt>
  <dd>説明1:一つの定義語(dt)に対し、複数の定義説明(dd)を当てることが認められています。</dd>
  <dd>説明2:この例では1つの項目に対して、説明1と2が割り当てられています。</dd>
</dl>

こちらのCSSは上記そのままです。

複数dtの場合

次にこちらのデモをお試しください。

項目1
項目2
項目3
複数の定義語(dt)に対する一つの定義説明(dd)が認められています。この例では項目1~3に対して、この1つの説明が割り当てられています。
<dl>
  <dt>項目1</dt>
  <dt>項目2</dt>
  <dt>項目3</dt>
  <dd>複数の定義語(dt)に対する一つの定義説明(dd)が認められています。この例では項目1~3に対して、この1つの説明が割り当てられています。</dd>
</dl>

複数のdtは下記の通り clear が必要でした。

dl dt	{
  float: left;
  clear: left;
}

dl dd	{
  margin-left: 120px;
}

dl dd::after	{
  content: "";
  display: block;
  clear: left;
}
3,10~14
複数dtに必用です。

まとめ

このように、dlは仕様上、下記が認められています。

  1. 複数のdtに対し、一つのdd
  2. 一つのdtに対し、複数のdd
  3. 複数のdtに対し、複数のdd

以上、dlタグのdtとddを横並びにする方法でした。