HTML 列表¶
列表把相关项目组织成可扫描的结构。无序列表、顺序列表和描述列表分别表达不同关系, 不应仅根据默认项目符号外观选择。
学习目标¶
- 根据内容关系选择
ul、ol或dl。 - 正确嵌套列表并保持直接子元素有效。
- 使用列表改善导航、步骤说明和术语解释。
核心概念¶
项目顺序决定列表类型,无序列表用于顺序无关的项目,有序列表用于步骤或排名,描述列表则表达名称与说明。
无序列表¶
项目顺序不影响含义时使用 ul:
ul 的直接子元素应为 li。若列表项需要段落、链接或子列表,应把它们放进对应 li 中。
有序列表¶
步骤或排名依赖顺序时使用 ol:
浏览器会自动生成序号,删除或插入项目后无需手工改写正文编号。start、reversed 和 value
可表达确有需要的编号变化,但不应用它们修饰纯视觉效果。
描述列表¶
名称与一个或多个描述构成关联时使用 dl:
描述列表适合术语、元数据或名称和值,不应为了没有项目符号的缩进效果而滥用。
嵌套与导航¶
子列表必须位于所属的 li 内。导航链接常可组织成列表,但 nav 表达导航地标,列表表达项目关系,
二者职责不同,可根据内容组合使用。CSS 可以改变标记样式,不会改变列表语义。
外部数据生成列表时,应把数据作为文本安全输出。不要让不可信 HTML 直接成为列表项, 也不要通过隐藏列表项实现访问控制;服务端仍需检查权限。
常见错误¶
- 根据是否想显示圆点来选择列表类型,而不看顺序含义。
- 把子
ul放在父li外,形成错误层级。 - 在步骤正文中手写数字,同时又使用
ol,出现重复编号。 - 用
br分隔一组项目,失去列表结构。 - 用 CSS 移除标记后忘记保留足够的视觉分组线索。