CSS: 重置与原子样式

最后更新:2026-10-13

在实际开发中,不同浏览器对 HTML 元素有各自的默认样式。为了让页面在各浏览器中表现一致,我们需要重置这些默认样式。同时,为了提高开发效率,原子类样式也是非常有用的工具。

1. 为什么需要 CSS Reset?

每个浏览器都有自己的"用户代理样式表"——就是浏览器自带的默认样式。例如:

这些差异导致同一个页面在不同浏览器中看起来不一样。CSS Reset 就是为了消除这些差异。


2. 简单的 Reset 写法

一个最基础的 reset 代码:

▶ 示例

▶ 试一试

(1) 常见的 Reset 方案


3. 什么是原子类样式?

原子类(Atomic CSS)是一种 CSS 编写方式,每个类只负责一个样式属性。比如:

▶ 示例

▶ 试一试

然后在 HTML 中组合使用:

HTML
<div class="text-center p-20 mt-10 bg-yellow">
  文字居中,有内边距和上外边距,黄色背景
</div>

(1) 原子类的优势

  1. 粒度细:每个类只做一件事,组合灵活
  2. 复用性高:一个 .flex 可以在任何需要 flex 的地方使用
  3. 减少 CSS 体积:避免重复声明相同的属性组合
  4. 修改安全:不会因为改了某个类而影响其他不相干的元素

(2) 原子类的不足

  1. HTML 中类名会很长:class="flex items-center justify-between p-20 mt-10 text-center"
  2. 样式和结构在 HTML 层面混合,有人觉得不好阅读
  3. 不适合复杂的组件级样式

4. 综合使用:Reset + 原子类

实际项目中,通常把 Reset 和常用的原子类放在一个基础样式文件中(常命名为 reset.css 或 base.css):

▶ 示例

▶ 试一试

❓ 常见问题

Q Normalize.css 和 CSS Reset 选哪个?
A 推荐 Normalize.css,它在保留有用默认样式(如 h1 的字号)的同时只抹平浏览器差异。传统 Reset 把所有样式都归零,意味着你要重新定义每个元素,反而增加了工作量。
Q * { box-sizing: border-box } 会影响性能吗?
A 几乎不会。通配选择器的性能开销在现代浏览器中已经微乎其微,而 box-sizing: border-box 带来的好处远超那点理论上的性能损失。放心用。
Q 原子类(如 .mt-20)适合什么项目?
A 适合大型项目或需要统一设计系统的场景。小项目直接用普通的 class 就够了。Tailwind CSS 这种原子化框架学习成本较高,不是每个项目都需要。

📖 小节

📝 作业

  1. 创建一个 reset.css 文件,包含以下内容:
    • 通配符重置 margin、padding 和 box-sizing
    • body 的基础字体和颜色设置
    • a 标签的样式重置
    • img 的响应式设置
  2. 在 reset.css 中添加至少 10 个常用的原子类(flex、间距、文本对齐等)。
  3. 创建一个 HTML 页面,通过 <link> 引入 reset.css,仅使用原子类完成一个简单的卡片布局(包含标题、文字、图片)。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏