css工具Normalize.css与reset.css区别

Normalize.css 是整理,保留并统一默认样式;Reset.css 是清空,彻底重置所有样式。前者修复差异,后者从零开始。现代开发多选 Normalize。

Normalize.cssReset.css 都是用于处理浏览器默认样式不一致的 CSS 工具,但它们的设计理念和实现方式有明显区别。

目标不同:统一 vs 清除

Normalize.css 的目标是让元素在不同浏览器中表现一致,它保留有用的默认样式,并修复一些常见的浏览器 bug。比如标题的字体大小、code 标签的样式、链接的下划线等都会被保留并标准化。

Reset.css 则更激进,它的目标是清除所有默认样式,把所有元素的 margin、padding、字体、加粗等全部重置为 0 或基础值,相当于“从零开始”构建样式。

处理方式不同:修复 vs 重置

Normalize.css 会:

  • 修正 HTML5 元素的显示模式(如 article、section 默认为块级)
  • 保持合理的排版间距(如段落保留 margin)
  • 修复表单元素在不同浏览器中的样式差异
  • 保留可访问性相关的默认行为(如:focus 效果)

Reset.css 通常会:

  • 将所有元素的 margin 和 padding 设为 0
  • 去掉标题的加粗和大小差异
  • 清除列表项的标记和缩进
  • 统一字体、颜色、行高等全局样式

使用场景不同:现代开发 vs 传统清零

如果你希望快速进入干净样式环境,且项目结构简单,Reset.css 可能更直观。但大多数现代前端项目更推荐使用 Normalize.css,因为它更智能,减少重复设置,也更符合语义化和可访问性原则。

如今很多框架(如 Bootstrap)都内置了类似 Normalize 的方案,说明其设计更贴近实际开发需求。

基本上就这些。Normalize 是“整理”,Reset 是“清空”,选择哪个取决于你想要从什么起点开始写样式。