【大白话前端 07】`<ul>、<ol> 和 <dl>` 怎么选:前端页面的 3 种基础结构

0 阅读2分钟

HTML 里只有 3 种列表标签。它们的作用主要是告诉浏览器和机器这些数据是什么关系。

1. 无序列表 <ul>:并列关系

这玩意是干嘛的: 当一组数据完全不分先后顺序时使用。比如导航菜单、商品标签。

怎么写:<ul> (Unordered List) 划定区域,数据必须包裹在 <li> (List Item) 中。

<!-- 导航菜单 -->
<ul>
  <li>首页</li>
  <li>关于我们</li>
  <li>联系邮箱</li>
</ul>

效果:

image-2.png

核心定律:只要元素的顺序打乱也不影响对整体内容的理解,就应该用 <ul>

2. 有序列表 <ol>:步骤与排名

这玩意是干嘛的: 当且仅当数据必须按照特定顺序展示时使用。比如操作步骤、排行榜。

怎么写:<ol> (Ordered List) 划定区域,数据依旧包裹在 <li> 中。

<!-- 操作步骤 -->
<ol>
  <li>点击右上角登录</li>
  <li>输入验证码</li>
  <li>完成绑定</li>
</ol>

效果:

image-3.png

3. 描述列表 <dl>:键值对映射

这玩意是干嘛的: 专门用来展示术语 + 解释的问答关系。实际业务中常用于 FAQ 详情解答或电商商品参数说明。

怎么写: 这需要一套组合拳标签。

  • <dl> (Description List):声明描述区域。
  • <dt> (Term):你要解释的术语。
  • <dd> (Definition):对术语的具体解释文字。
<!-- 商品参数 -->
<dl>
  <dt>保质期</dt>
  <dd>冷藏保存1个月</dd>
  <dd>冷冻保存6个月</dd> <!--  一个术语可以对应多条解释 -->
</dl>

效果:

image-4.png

常见错误:浏览器默认会给 <dd> 加上视觉缩进效果。绝不要为了白嫖这个缩排效果去滥用 <dl>。样式排版交给 CSS,标签只负责数据关系。

4. 嵌套列表:层级结构

当列表的某一项内容里还需要包含次级列表时,必须遵守唯一的嵌套规则:子组件列表必须完整包裹在一个父级 <li> 标签内部。

<ul>
  <li>前端语言
    <!--  正确做法:子列表完整包裹在 li 内部 -->
    <ol>
      <li>HTML</li>
      <li>CSS</li>
    </ol>
  </li>
  <li>后端语言</li>
</ul>

效果:

image-5.png

常见错误:千万不能在 <ul> 里直接塞入一个 <ol> 或另一个 <ul><ul><ol> 的直接子元素只能且必须是 <li>

总结:

  • <ul> = 无序并列(打乱顺序也不影响理解,如导航栏、商品平铺)
  • <ol> = 有序步骤(必须按先后排布,如排行榜、操作步骤)
  • <dl> = 键值对映射(解释名词短语、Q&A问答,必须配合 dtdd
  • 铁律<ul><ol> 的直接儿子只能且必须是 <li>

➡️ 下期预告:

掌握了列表的“结构语义”后,如果你遇到需要特殊排版的文字片段,该怎么办呢? 比如化学公式的上下标、界面快捷键按键提示、名人的大段引用语……遇到这些场景怎样写才能既少写冗余 CSS,又能让搜索引擎精准抓取? 请看下一章👉 【大白话前端 08】HTML 文本语义化:6 类非 div 标签的速查指南