html列表应使用语义化标签和,而非css实现;判断依据是内容是否存在固有次序:用于有序场景(步骤、排名、时间线),用于并列关系;必须嵌套在或内,禁止裸放;样式应通过CSS控制,避免废弃的HTML属性;需兼顾无障碍与seo,确保语义准确。

HTML 列表不是靠 CSS 实现的,而是用原生语义化标签:
和
。用错标签或嵌套不当,会导致语义丢失、屏幕阅读器误读、SEO 减分,甚至影响后续 CSS 选择器的精准控制。
用
还是
?看内容是否有逻辑顺序
关键判断依据不是“要不要编号”,而是“项与项之间是否存在固有次序”:
-
:适合步骤(如安装流程)、排名(如 Top 5)、时间线(如版本更新日志)——浏览器默认渲染为 1. 2. 3.,但序号可被type或 CSScounter-reset修改 -
:适合并列关系(如导航菜单、功能特性列表、标签集合)——默认用圆点●,但本质是“无序”,不是“不能编号” - 别为了视觉编号硬套
:比如“热门城市:北京、上海、广州”,城市间无先后,该用+ CSS 自定义标记
必须直接嵌套在
或
内,不能裸放
常见错误是把
或
下,浏览器会自动纠错(补上隐式
),但 dom 结构不可控,CSS 选择器可能失效:
首页 关于
- 首页
- 关于
注意:
支持嵌套,但子列表必须包在父
内部,而非同级:
立即学习“前端免费学习笔记(深入)”;
自定义列表样式时,优先用 CSS 而非 HTML 属性
的 type(如 type="A")、start(如 start="3")和
的 type(如 type="square")已废弃或兼容性差(尤其 type 在
中被现代浏览器忽略):
- 用 CSS
list-style-type 替代:ul { list-style-type: square; }
- 用
counter-reset/counter-increment 精确控制
编号逻辑,比如跳过某项、多级编号对齐
- 彻底隐藏默认标记用
list-style: none,再用 ::before 伪元素+背景图或 Unicode 字符实现定制图标
无障碍与 SEO 容易被忽略的细节
仅靠视觉样式无法传达列表结构。辅助技术依赖 HTML 语义:
- 别用