HTML5用<ul>、<ol>和<li>语义化创建无序/有序列表,支持嵌套、CSS样式定制,并强调正确嵌套与语义使用,禁用废弃标签和非法结构。

如果您希望在网页中创建项目列表,HTML5 提供了语义清晰的 <ul>、<ol> 和 <li> 标签来分别定义无序列表、有序列表以及列表项。以下是具体编写方式:
一、使用 <ul> 和 <li> 创建无序列表
无序列表用于表示项目之间没有特定顺序关系的集合,浏览器默认以实心圆点(●)作为项目符号。每个列表项必须嵌套在 <ul> 标签内,并由 <li> 标签包裹。
1、在 HTML 文件的主体内容区域中,输入 <ul> 开始标签。
2、在 <ul> 标签内部,逐行添加多个 <li> 标签,每个 <li> 标签内写入一个列表项目文本。
立即学习“前端免费学习笔记(深入)”;
3、在最后一个 <li> 标签后,输入 </ul> 结束标签。
4、确保所有 <li> 标签都严格位于 <ul> 与 </ul> 之间,不得遗漏闭合或错位嵌套。
二、使用 <ol> 和 <li> 创建有序列表
有序列表适用于存在逻辑次序、步骤顺序或编号依赖的项目,浏览器默认以阿拉伯数字(1. 2. 3. …)进行编号。其结构与无序列表一致,仅将外层容器替换为 <ol>。
1、在文档适当位置插入 <ol> 开始标签。
2、在 <ol> 内部,依次添加若干 <li> 标签,每个标签内填写对应顺序的条目内容。
3、所有 <li> 必须成对出现在 <ol> 和 </ol> 之间,不可跨出范围。
4、若需自定义起始编号,可在 <ol> 标签中添加 start="5" 属性,例如 <ol start="5">。
三、嵌套列表的正确写法
当某个列表项本身包含子级项目时,可在该 <li> 内部直接嵌套另一个 <ul> 或 <ol>,实现层级结构。嵌套必须完整闭合,避免标签交叉。
1、在父级 <li> 标签内部,紧随文本之后插入子列表的开始标签(如 <ul>)。
2、在子列表中添加所需的 <li> 项,每项内容独立成行。
3、先闭合子列表的结束标签(如 </ul>),再闭合当前父级 <li> 的结束标签。
4、禁止在 <ul> 内直接放置文本而不包裹在 <li> 中,否则不符合 HTML5 语法规范。
四、添加自定义样式控制列表外观
HTML5 列表默认样式可通过 CSS 调整,但结构标记仍需保持语义正确。<ul> 和 <ol> 不支持直接通过 HTML 属性修改符号类型,必须借助 CSS 的 list-style-type 属性。
1、为列表添加 class 属性,例如 <ul class="custom-list">。
2、在 style 标签或外部 CSS 文件中,定义该 class 的样式规则,如 .custom-list { list-style-type: square; }。
3、若需移除默认符号,可设置 list-style: none;,再用背景图或伪元素模拟自定义标记。
4、不得使用 <font>、<center> 等已废弃标签干预列表样式,应严格采用 CSS 控制呈现。
五、语义化注意事项与常见错误规避
HTML5 强调内容语义,列表标签不可滥用。仅当内容确为并列项或有序步骤时才使用 <ul> 或 <ol>;单纯换行或缩进应使用 CSS 实现,而非堆砌列表。
1、避免将导航链接强行塞入 <ol> 仅为了获得数字编号,应优先使用 <nav> + <ul> 组合。
2、禁止省略 <li> 直接在 <ul> 中写文本,此类写法会导致验证失败和渲染异常。
3、每个 <li> 必须属于且仅属于一个列表容器(<ul> 或 <ol>),不可同时被两个父级包裹。
4、若列表项含复杂结构(如段落、图片),可将内容置于 <li> 内部的合法块级元素中,如 <p> 或 <div>。










