firefox用padding-left、ie用margin-left实现列表缩进;重置应仅针对ul/ol而非全局*;ie7下li设height/float会导致ol序号全为“1”;推荐normalize.css对齐默认行为而非清零。

ul/ol 默认 margin 和 padding 在 Firefox 与 IE 中表现不一致
Firefox 和旧版 IE(尤其是 IE7 及以下)对 ul 和 ol 的默认缩进处理逻辑完全不同:Firefox 主要靠 padding-left 实现缩进,IE 则依赖 margin-left;而且仅设 margin: 0 在 Firefox 下无法清除左右缩进,仅清上下空白。
直接写 * { margin: 0; padding: 0 } 是最常见但最危险的做法——它会抹掉 button、input 等表单控件的原生间距,导致点击热区变小、可访问性下降。
- 正确做法是只针对列表重置:
ul, ol { margin: 0; padding: 0; list-style: none; } - 若需保留序号或圆点,去掉
list-style: none,但必须同时保留margin: 0和padding: 0,否则 Firefox 仍会多出左侧空白 - 在 IE6/7 中,若列表项
li设置了width或height,可能导致序号错位或全显示为 “1”,此时应改用line-height或padding控制高度,避免直接设height
list-style-position: inside 导致序号被截断或换行
当 list-style-position: inside 配合固定宽度的 li 使用时,Firefox 和 Chrome 通常能正常包裹序号,但 IE6/7 容易把序号挤到文本外或强制换行——尤其在窄容器中。
这不是 bug,而是 inside 模式下,序号被当作文本流一部分参与盒模型计算,一旦内容宽度撑满,序号就无空间可放。
- 优先用
list-style-position: outside(默认值),再通过padding-left手动控制缩进距离 - 若必须用
inside,给li加box-sizing: border-box并预留足够内边距,例如:li { padding-left: 2em; box-sizing: border-box; } - 避免在
li上设width,改用父级ol控制整体宽度,让li自然伸缩
有序列表 ol 序号在 IE7 及以下显示为全 “1”
这是典型的老 IE 渲染 bug:当 li 元素显式设置了 height、float 或某些 display 值(如 inline-block),IE7 会丢失计数器状态,所有项都渲染为第一个序号。
它不报错,也不警告,只是静默失效——你检查 DOM 结构和 CSS 规则都看似正常,但序号就是不对。
- 绝对不要给
li设height;用line-height替代控制行高 - 避免在
li上使用float;如需横向排列,改用display: flex(现代项目)或display: inline-block+ 父级font-size: 0清除间隙 - 如果必须兼容 IE7,用 JavaScript 补充计数:
document.querySelectorAll('ol li').forEach((el, i) => el.innerHTML = (i+1) + '. ' + el.innerHTML),但仅限兜底
现代项目中推荐用 normalize.css 而非手写重置
手写 ul, ol { margin: 0; padding: 0 } 看似简单,但漏掉的细节很多:比如 Safari 对 ol 的默认 counter-reset 行为、Firefox 在深色模式下对 list-style-type: decimal 的颜色继承异常等。
normalize.css 不是“清零”,而是“对齐”——它让各浏览器的列表缩进、序号起始值、标记对齐方式趋于一致,同时保留语义化结构应有的默认行为。
- 引入方式:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css">,且必须放在自定义 CSS 之前 - 引入后仍需补一句:
ul, ol { list-style: none; }或按需设置list-style-type,因为 normalize 不禁用列表样式 - 真正容易被忽略的是:即使用了 normalize,IE6/7 依然存在序号重置失效问题,这类浏览器已无维护价值,建议明确标注不支持
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











