← HTML 无序列表 HTML CSS →

HTML 描述列表

原创 2025-08-31 HTML 已有人查阅
HTML(超文本标记语言)作为 Web 内容的基石,为在线信息提供结构和语义。在众多标记元素中,<dl> 元素(描述列表)是一种语义化工具,专门用于展示术语与其对应解释的关联关系。描述列表由三个核心标签组成:
<dl>:定义列表的容器元素
<dt>:定义术语或名称
<dd>:提供术语的描述或定义
这种结构特别适合创建术语表、常见问题解答(FAQ)列表、元数据展示以及技术文档编写。通过语义化标记,每个术语都与定义建立明确关联,这不仅提高了内容的可读性,还增强了搜索引擎优化(SEO)和可访问性。
描述列表可以通过 CSS 进行样式设计,实现美观的视觉效果。开发者可以调整间距、字体样式和布局来优化视觉呈现。结合 JavaScript 还可以增加交互功能,例如点击切换定义显示,从而提升用户体验。

描述列表的基本结构

1. <dl> 标签
<dl> 标签用于创建描述列表,包含整个术语和定义的。
<dl>
  <dt>术语一</dt>
  <dd>术语一的详细定义和解释</dd> 
  <dt>术语二</dt>
  <dd>术语二的详细定义和解释</dd>
</dl>
2. <dt> 标签
<dt> 标签用于定义描述列表中的术语或名称。
<dl>
  <dt>HTML</dt>
  <dd>超文本标记语言,用于创建网页结构和内容</dd>  
  <dt>CSS</dt>
  <dd>层叠样式表,用于定义网页的视觉表现和布局</dd>
</dl>
3. <dd> 标签
<dd> 标签提供对应术语的描述和定义信息。
<dl>
  <dt>响应式设计</dt>
  <dd>一种网页设计方法,使网站能够适应不同设备和屏幕尺寸</dd>
  <dt>语义化标记</dt>
  <dd>使用具有明确含义的HTML标签,增强内容的结构和可访问性</dd>
</dl>

嵌套描述列表

描述列表支持嵌套结构,可以表示多层次的术语定义关系。
<dl>
  <dt>前端开发</dt>
  <dd>
    <dl>
      <dt>HTML</dt>
      <dd>定义网页内容和结构</dd>
      
      <dt>CSS</dt>
      <dd>控制网页样式和布局</dd>
      
      <dt>JavaScript</dt>
      <dd>实现网页交互功能</dd>
    </dl>
  </dd>
  
  <dt>后端开发</dt>
  <dd>
    <dl>
      <dt>Node.js</dt>
      <dd>JavaScript运行时环境</dd>
      
      <dt>Python</dt>
      <dd>通用编程语言,适合Web开发</dd>
    </dl>
  </dd>
</dl>

样式设计与呈现

通过CSS可以自定义描述列表的视觉呈现效果。
基础样式示例
dl {
  margin: 20px 0;
  padding: 15px;
  background-color: #f9f9f9;
  border-radius: 5px;
}

dt {
  font-weight: bold;
  color: #2c3e50;
  margin-top: 15px;
}

dd {
  margin-left: 20px;
  color: #34495e;
  line-height: 1.6;
}
水平布局样式
.horizontal-dl {
  display: flex;
  flex-wrap: wrap;
}

.horizontal-dl dt {
  flex: 0 0 30%;
  font-weight: bold;
  padding-right: 15px;
}

.horizontal-dl dd {
  flex: 0 0 70%;
  margin: 0;
}

可访问性考虑

使用描述列表时,确保内容对辅助技术用户友好至关重要。语义化HTML帮助屏幕阅读器和其他辅助设备正确解读内容结构。
课程实践:
确保每个 <dt> 都有对应的 <dd> 元素
保持术语和定义的关联关系清晰明确
避免过度嵌套,以免造成屏幕阅读器用户的困惑
为交互式元素添加适当的键盘支持

常见应用场景

1. 术语表
教育类网站常用描述列表创建术语表:
<dl>
  <dt>云计算</dt>
  <dd>通过网络提供计算服务的模式,包括服务器、存储、数据库等资源</dd>
  
  <dt>大数据</dt>
  <dd>指规模巨大、类型多样的数据,需要专门的技术进行处理和分析</dd>
</dl>
2. 常见问题解答(FAQ)
描述列表适合组织问答内容:
<dl>
  <dt>如何重置密码?</dt>
  <dd>请在登录页面点击"忘记密码"链接,按照发送到您邮箱的指引操作</dd>
  
  <dt>支持哪些支付方式?</dt>
  <dd>我们接受信用卡/借记卡和PayPal在线支付</dd>
</dl>
3. 元数据展示
描述列表可用于展示内容元数据:
<dl>
  <dt>作者</dt>
  <dd>技术文档团队</dd>
  
  <dt>发布日期</dt>
  <dd>2023年7月</dd>
  
  <dt>更新</dt>
  <dd>2023年8月15日</dd>
</dl>
4. 技术文档
技术文档中使用描述列表定义专业术语:
<dl>
  <dt>API密钥</dt>
  <dd>由数字和字母组成的代码,用于验证对Web服务的请求</dd>
  
  <dt>端点</dt>
  <dd>访问API或Web服务时的特定URL地址</dd>
</dl>
响应式设计考虑(以下两点小小超纲,仅了解可不用掌握知识点)
通过媒体查询确保描述列表在不同设备上都能良好显示:
/* 默认样式 */
dl {
  display: block;
}

dt, dd {
  display: block;
}

/* 小屏幕设备样式 */
@media screen and (max-width: 600px) {
  .horizontal-dl dt,
  .horizontal-dl dd {
    flex: 0 0 100%;
  }
  
  dt {
    margin-top: 20px;
    border-bottom: 1px solid #eee;
    padding-bottom: 5px;
  }
}
交互功能实现
通过JavaScript可以为描述列表添加交互功能:
<style>
  dt {
    cursor: pointer;
    padding: 10px;
    background-color: #f0f0f0;
    border-radius: 3px;
  }
  
  dd {
    display: none;
    padding: 10px 15px;
    background-color: #f9f9f9;
    border-radius: 0 0 3px 3px;
  }
  
  .active + dd {
    display: block;
  }
</style>

<dl>
  <dt onclick="this.classList.toggle('active')">什么是HTML?</dt>
  <dd>超文本标记语言,用于创建网页结构和内容</dd>
  
  <dt onclick="this.classList.toggle('active')">什么是CSS?</dt>
  <dd>层叠样式表,用于定义网页的视觉表现和布局</dd>
</dl>
本节实践建议
语义化使用:仅在需要展示术语定义关系时使用描述列表,避免用于布局目的
结构完整性:确保每个 <dt> 都有对应的 <dd> 元素
适度嵌套:仅在确实需要表示层次关系时使用嵌套结构
可访问性:为交互式功能添加键盘支持和适当的ARIA属性
响应式设计:确保描述列表在不同屏幕尺寸上都能正常显示
← HTML 无序列表 HTML CSS →
分享笔记 (共有 篇笔记)
验证码:
微信公众号