需使用CSS Reset统一浏览器默认样式差异,推荐Normalize.css而非传统Reset,因其保留有用默认样式、修复跨浏览器bug且轻量;再配合box-sizing等自定义重置提升开发体验。
不同浏览器对HTML元素有各自的默认样式(比如 margin、padding、字体大小、列表缩进等),这会导致同一份CSS在Chrome、Firefox、Safari、Edge甚至旧版IE中渲染效果不一致。解决的核心思路是:**先清空浏览器默认样式,再统一定义**——这就是“CSS Reset”的作用。
不重置的话,你可能遇到这些情况:
p 默认上下边距20px,Firefox 可能是16px;input 和 button 的行高、内边距、边框在各浏览器中差异明显;ul/ol 的左边距和项目符号位置不统一;h1–h6 的默认 font-weight 和 font-size 各有偏好。传统 Reset(如 Eric Meyer’s Reset)会把所有元素样式设为 0 或 none,过于激进,反而丢失了有用的默认行为(如表单控件的可访问性样式)。Normalize.css 是更优选择:
strong 加粗、blockquote 缩进);使用方式很简单:在你自己的CSS文件之前引入:
Normalize 解决了兼容性基础,但你还可加一段简短的“自定义重置”,让开发更顺手:
box-sizing: border-box,避免 padding 撑开宽度;:focus 元素统一加可访问的聚焦样式,而不是直接 outline: none;img { vertical-align: middle; } 避免基线留白。示例片段(放在 Normalize 之后、业务CSS之前):
*, *::before, *::after { box-sizing: border-box; }Reset 只是起点,不是终点:
margin、padding、line-height 是否真正一致;