dl:description list のレイアウト
dl:description list
- description listの略で用語説明型リストを表す要素
- HTML5より前は、definition listの略で定義リストを表す要素でした
- dl要素内は、dt:description term と dd:description details 以外入りません
dtとddの横並び
- 横に並べて1行として表現することが多い
<dl> <dt>HTML</dt> <dd>Webページの文章構造を記する言語</dd> <dt>CSS</dt> <dd>Webページの視覚的表現を行う言語</dd> <dt>JavaScript</dt> <dd>Webページの変化や動きを表現する言語</dd> </dl>
floatで指定
- dtのみを、floatする
* { margin: 0; padding: 0; box-sizing: border-box; } dl { width: 600px; margin: 30px auto; } dt { float: left; width: 7em; } dt, dd { border-bottom: 1px solid #999; line-height: 3.0; }
flexで指定
- 親要素が flex が指定されている場合、子要素には幅指定が必須
- dl 全体をwrap(囲む)する
* { margin: 0; padding: 0; box-sizing: border-box; } dl { display: flex; flex-wrap: wrap; width: 600px; margin: 30px auto; } dt { width: 7em; } dd { width: calc(100% - 7em); } dt, dd { border-bottom: 1px solid #999; line-height: 3.0; }
gridで指定
- dt が7文字分、dd が残りすべての幅という記述のみ
* { margin: 0; padding: 0; box-sizing: border-box; } dl { display: grid; grid-template-columns: 7em 1fr; width: 600px; margin: 30px auto; } dt, dd { border-bottom: 1px solid #999; line-height: 3.0; }
実践例
<dl class="info"> <dt>会社名</dt> <dd>ウェブエンターテイメントデザイン株式会社</dd> <dt>所在地</dt> <dd>東京都渋谷区桜丘町99-9 West Building 3F</dd> <dt>代表</dt> <dd>XXXXXX</dd> <dt>設立</dt> <dd>2021年1月1日</dd> <dt>資本金</dt> <dd>3,000,000円</dd> <dt>事業内容</dt> <dd>Web制作・マーケティング</dd> <dd>インターネットメディア事業</dd> <dd>プロモーション企画・制作</dd> <dd>ソーシャル企画・運営</dd> </dl>
.info { display: grid; grid-template-columns: 6em 1fr; width: 700px; margin: 50px auto; } .info > dt, .info > dd { line-height: 2; } .info > dt { grid-column: 1/2; white-space: nowrap; } .info > dd { grid-column: 2/3; }