必须用ol而非ul当内容顺序改变会改变语义,如安装流程、法律条文、食谱步骤;导航菜单有路径优先级时也应用ol,纯并列则用ul。
该用还是,不看“要不要编号”,而看内容换顺序会不会改变意思。
什么时候必须用
,而不是靠 CSS 加个数字
浏览器给
加编号只是副作用,真正起作用的是语义:屏幕阅读器会读出“第1项、第2项”,搜索引擎会理解这是步骤或条款序列。
安装流程、法律条文、食谱步骤、搜索结果排名 → 必须用
导航菜单是否要用
?取决于逻辑:若菜单项有优先级(如“首页 > 产品 > 定价 > 联系我们”隐含路径顺序),
更准确;纯并列入口则用
硬套
写“热门城市:北京、上海、广州”,会导致读屏器错误播报顺序,后续加
属性也难修正
和
嵌套时,DOM 结构错在哪一行
合法嵌套只有一种写法:
内直接包
或
。任何跳层、错位都会让浏览器自动纠错,但 DOM 已不是你写的那样。
错误写法:
→ 第二个
会被浏览器移到外面,变成两个平级列表
正确写法:
→ 子列表是
的子节点
动态生成时(如 Vue/JSX 或模板引擎),漏掉
闭合或条件分支未覆盖空状态,极易产出这种结构断裂
列表符号不显示?先查这三处,别急着改 CSS
90% 的“编号消失”问题跟
无关,而是底层结构或解析异常。
检查
是否被设了
或
—— 这些值会隐式禁用列表标记,需显式加
打开开发者工具的 “Computed” 面板,看
最终计算值是不是
;如果是,往上查是否被全局 reset.css 或组件库样式覆盖
右键检查元素,确认
真是
/
的直接子节点;如果看到
,说明 HTML 结构非法,浏览器已重排 DOM
和
属性现在还值得用吗
能不用就不用。它们兼容性有限、不可扩展,且和现代 CSS 方案冲突风险高。
在 Safari 和旧版 Edge 中可能不渲染为大写字母;
是唯一稳定值
只对单个
有效,多个连续
想“续号”,必须用 CSS
/
要加前缀(如
)、图标或 SVG,必须用
+
,
根本做不到
最常被忽略的一点:列表标签选错,不是样式问题,是语义污染——它会在无障碍测试、SEO 抓取、甚至 JS 的
中持续制造偏差,而且越往后改越疼。
ulololololololulolaria-ulolliulol- A
- B
ul- A
- B
lililist-stylelidisplay: flexdisplay: gridlist-style: inheritlist-style-typenoneliulolul > div > listarttypetype="A"type="1"start="5"ololcounter-resetcounter-increment"Step 1."list-style: noneli::before { content: ... }typequerySelectorAll('ol > li')