Normalize.css 不会清空默认样式,只修正跨浏览器不一致问题;需作为首个样式表引入,避免被覆盖或截断,配合 base.css 使用而非混用其他 reset。
为什么直接引入 Normalize.css 后样式没变化?
Normalize.css 不是重置(reset),它不会把 margin、padding 全设为 0,而是保留有用的默认行为(比如标题的 font-weight、列表的缩进),只修正跨浏览器不一致的地方。如果你期望“清空所有默认样式”,它达不到效果;但如果你想要语义化标签在 Chrome/Firefox/Safari/Edge 中表现一致,它正合适。
常见误操作:
- 把 Normalize.css 放在自定义 CSS 之后 —— 导致你的规则覆盖了它的修复逻辑
- 用
@import在 SCSS 中引入,却忘了它必须是第一个加载的 CSS 文件 - 只复制了部分代码(比如删掉了表单控件或 HTML5 元素的规则),破坏了完整性
如何正确加载 Normalize.css 到项目中?
最稳妥的方式是确保它作为**首个外部样式表**载入,早于任何自定义 CSS:
如果是构建流程(Webpack/Vite):
立即学习“前端免费学习笔记(深入)”;