HTML5使用<ul>和<li>创建语义化无序列表,默认实心圆点标记;可通过list-style-type切换符号,嵌套<ul>实现多级结构,CSS移除符号并用背景图定制,结合ARIA属性增强可访问性。

如果您希望在网页中以非顺序方式展示一组相关项目,HTML5 提供了专门用于定义无序列表的语义化标签。以下是创建与定义 HTML5 无序列表的具体方法:
一、使用 <ul> 和 <li> 标签构建基本无序列表
HTML5 中,无序列表由 <ul>(unordered list)元素包裹,每个列表项使用 <li>(list item)元素表示。浏览器默认为这些项目渲染实心圆点作为标记符号,且不体现项目间的先后逻辑关系。
1、在 HTML 文档的主体内容区域插入 <ul> 开始标签。
2、在 <ul> 标签内部,逐个添加 <li> 标签,每个 <li> 包裹一个列表项文本或内联元素。
立即学习“前端免费学习笔记(深入)”;
3、在最后一个 <li> 后闭合 <ul> 标签。
4、确保所有 <li> 元素都严格嵌套在 <ul> 内部,不得直接置于 <body> 或其他非列表容器中。
二、通过 list-style-type 属性自定义项目符号样式
CSS 的 list-style-type 属性允许更改无序列表的默认标记形状,从而适配不同视觉设计需求。该属性作用于 <ul> 元素,无需修改 HTML 结构即可切换符号类型。
1、为 <ul> 元素添加 class 属性,例如 class="custom-list"。
2、在 <style> 标签或外部 CSS 文件中,编写对应选择器规则:.custom-list { list-style-type: square; }。
3、可选值包括 disc(实心圆,默认)、circle(空心圆)、square(实心方块),不支持使用数字或字母作为无序列表符号。
三、嵌套无序列表实现多层级结构
当需要表达分组或子类关系时,可在某个 <li> 元素内部再次嵌套一个完整的 <ul>,形成二级(或更深)无序列表。这种嵌套保持语义清晰,且浏览器自动缩进子列表以示层级差异。
1、在目标 <li> 标签内部,直接插入一个新的 <ul> 开始标签。
2、在该嵌套 <ul> 中添加若干 <li> 子项。
3、闭合嵌套 <ul>,再闭合外层 <li>,最后完成外层 <ul> 闭合。
4、嵌套层级不受限制,但建议不超过三层以保障可读性与无障碍访问体验。
四、移除默认符号并用背景图替代
对于高度定制化的视觉设计,可通过 CSS 完全隐藏默认项目符号,并使用 background-image 在每个 <li> 左侧添加自定义图标。此方法绕过 list-style-type 的限制,提供更灵活的图形控制能力。
1、设置 <ul> 的 list-style: none; 以清除所有默认标记。
2、为 <li> 设置 padding-left 足够空间,避免文字覆盖图标。
3、为 <li> 添加 background-image 属性,指定图标路径,并设 background-repeat: no-repeat 与 background-position: left center。
4、必须为 background-size 设置明确值(如 16px 16px)以确保图标在高分辨率设备下清晰显示。
五、语义化增强:结合 role="list" 与 aria-label
在部分旧版辅助技术或特殊渲染环境中,显式声明列表角色有助于提升可访问性。HTML5 允许在 <ul> 上添加 ARIA 属性,进一步明确其语义功能,尤其适用于动态生成或 JavaScript 操作的列表。
1、为 <ul> 添加 role="list" 属性,强化其作为列表组件的语义识别。
2、若列表用途不直观(如导航菜单中的无序链接组),添加 aria-label="主菜单选项" 提供上下文说明。
3、确保每个 <li> 内部至少包含一个可聚焦或可交互元素(如 <a> 或 <button>),避免空 <li> 或仅含纯文本而无交互能力的项影响屏幕阅读器遍历。











