您现在的位置是:网站首页 > <dl>-描述列表文章详情

<dl>-描述列表

<dl> 是 HTML 中用于创建描述列表的标签,它通过术语(<dt>)和描述(<dd>)的配对结构,清晰地展示键值对形式的内容。这种列表形式非常适合展示词汇表、元数据或任何需要名称与详细说明关联的场景。

<dl> 的基本结构

一个标准的 <dl> 包含一个或多个 <dt>(定义术语)和 <dd>(定义描述)的组合。<dt> 表示术语名称,<dd> 提供对应的解释或内容。例如:

<dl>
  <dt>HTML</dt>
  <dd>超文本标记语言,用于构建网页结构。</dd>
  <dt>CSS</dt>
  <dd>层叠样式表,用于定义网页的视觉表现。</dd>
</dl>

渲染效果如下:

<dl> <dt>HTML</dt> <dd>超文本标记语言,用于构建网页结构。</dd> <dt>CSS</dt> <dd>层叠样式表,用于定义网页的视觉表现。</dd> </dl>

复杂嵌套与多描述

<dl> 支持一个术语对应多个描述,或嵌套其他 HTML 元素。例如:

<dl>
  <dt>JavaScript</dt>
  <dd>一种脚本语言,用于实现网页交互。</dd>
  <dd>支持事件驱动、函数式编程范式。</dd>
  <dt>浏览器兼容性</dt>
  <dd>
    <ul>
      <li>Chrome: 支持</li>
      <li>Firefox: 支持</li>
    </ul>
  </dd>
</dl>

效果:

<dl> <dt>JavaScript</dt> <dd>一种脚本语言,用于实现网页交互。</dd> <dd>支持事件驱动、函数式编程范式。</dd> <dt>浏览器兼容性</dt> <dd> <ul> <li>Chrome: 支持</li> <li>Firefox: 支持</li> </ul> </dd> </dl>

实际应用场景

元数据展示

<dl> 适合展示文档的元信息,比如作者、发布时间等:

<dl class="metadata">
  <dt>作者</dt>
  <dd>张三</dd>
  <dt>发布日期</dt>
  <dd>2023-10-05</dd>
  <dt>标签</dt>
  <dd>HTML, 前端</dd>
</dl>

常见问题解答(FAQ)

通过 <dl> 可以结构化地呈现问答内容:

<dl class="faq">
  <dt>如何重置密码?</dt>
  <dd>访问“账户设置”页面,点击“重置密码”链接。</dd>
  <dt>支持哪些支付方式?</dt>
  <dd>信用卡、支付宝、微信支付。</dd>
</dl>

样式自定义

默认情况下,<dd> 会有左外边距(margin-left),但可以通过 CSS 调整布局。例如实现水平排列:

<style>
  dl.horizontal {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0 1em;
  }
  dl.horizontal dt {
    grid-column: 1;
    font-weight: bold;
  }
  dl.horizontal dd {
    grid-column: 2;
    margin: 0;
  }
</style>

<dl class="horizontal">
  <dt>名称</dt>
  <dd>示例项目</dd>
  <dt>版本</dt>
  <dd>1.0.0</dd>
</dl>

效果:

<style> dl.horizontal { display: grid; grid-template-columns: max-content 1fr; gap: 0 1em; } dl.horizontal dt { grid-column: 1; font-weight: bold; } dl.horizontal dd { grid-column: 2; margin: 0; } </style>

<dl class="horizontal"> <dt>名称</dt> <dd>示例项目</dd> <dt>版本</dt> <dd>1.0.0</dd> </dl>

与其他列表的对比

  • <ul>/<ol>:适合项目序列,无明确的术语-描述关系。
  • <table>:适合二维数据,但语义上不如 <dl> 直观。
  • <dl>:专为术语解释设计,语义明确。

无障碍访问建议

为提升可访问性,可通过 aria-labelrole 属性增强描述列表的语义:

<dl role="list" aria-label="技术术语表">
  <dt role="term">AJAX</dt>
  <dd role="definition">异步 JavaScript 和 XML,用于无刷新数据交互。</dd>
</dl>

上一篇: <li>-列表项

下一篇: <dt>-描述术语

我的名片

网名:~川~

岗位:console.log 调试员

坐标:重庆市-九龙坡区

邮箱:cc@qdcc.cn

沙漏人生

站点信息

  • 建站时间:2013/03/16
  • 本站运行
  • 文章数量
  • 总访问量
微信公众号
每次关注
都是向财富自由迈进的一步