HTML规范要求ul的直接子元素必须是li,不可直接包含文本或其他标签;嵌套列表需将ul置于li内,确保语义正确、可访问性及CSS选择器有效。
ul 标签里必须用 li 做直接子元素
HTML 规范明确要求
的直接子节点只能是
、
或其他块级元素。浏览器虽会“容错渲染”,但会导致 DOM 结构异常、语义丢失,影响可访问性(如屏幕阅读器跳过内容)和 CSS 选择器失效(比如 ul > p 根本不匹配)。
正确写法只有一种核心结构:
- 第一项
- 第二项
- 第三项
- 所有内容(包括换行、空格)必须包裹在
内
- 不要写成
文本
或
文本
-
可以嵌套任意合法内容(如
、、甚至另一个
)
嵌套列表:li 里面再放 ul 是唯一合法方式
想实现多级菜单或缩进结构,必须通过
包裹下一级
,而不是把
直接塞进上层
。
立即学习“前端免费学习笔记(深入)”;
错误示例(解析后结构混乱):
- 一级项
- 二级项
正确写法(层级清晰、语义准确):