Đăng nhập

Bài 26: Reset CSS & Normalize CSS – giúp trình duyệt đồng nhất

Khi bạn viết CSS và thử trên nhiều trình duyệt (Chrome, Firefox, Safari…), bạn sẽ thấy một số thành phần bị hiển thị không giống nhau, ví dụ:

  • Thẻ h1 to hơn hoặc cách lề khác nhau
  • Button có viền hoặc padding lạ
  • Input hiển thị font khác…

Lý do là vì mỗi trình duyệt đều có một bộ CSS mặc định riêng, gọi là User Agent Stylesheet. Để loại bỏ sự khác biệt đó, chúng ta cần:

  • Reset CSS: xóa sạch mọi định dạng mặc định
  • Normalize CSS: giữ lại những định dạng hợp lý và làm đồng nhất trên các trình duyệt

1. Reset CSS là gì?

Reset CSS là kỹ thuật xóa toàn bộ style mặc định của trình duyệt để bạn có thể viết lại từ đầu theo ý muốn.

Ví dụ Reset CSS phổ biến:

/* Reset đơn giản */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

Reset đầy đủ hơn (do Eric Meyer đề xuất):

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
... {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

2. Normalize CSS là gì?

Normalize CSS là file CSS giúp đồng nhất các thành phần HTML mặc định giữa các trình duyệt, nhưng không xóa toàn bộ như Reset.

giữ lại những định dạng hợp lý, ví dụ:

  • Giữ kích thước chữ mặc định
  • Giữ kiểu hiển thị của sup, sub, mark, v.v.
  • Căn chỉnh font chữ đồng nhất giữa các hệ thống

3. So sánh Reset vs Normalize

Tiêu chíReset CSSNormalize CSS
Mục tiêuXóa toàn bộ style mặc địnhLàm đồng nhất nhưng giữ style cơ bản
Tác độngMạnh – xóa sạch mọi định dạngNhẹ – hiệu chỉnh cụ thể
Dễ kiểm soátCần viết lại từ đầu tất cả styleGiữ lại những gì hợp lý
Phù hợp khi nàoDự án tùy chỉnh sâu, framework riêngDự án cần giao diện nhanh, ổn định

4. Cách dùng Reset CSS trong dự án

Bạn có thể thêm vào đầu file CSS của mình:

/* reset.css */
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

Hoặc nhúng vào file chính:

<link rel="stylesheet" href="reset.css">

5. Cách dùng Normalize CSS

Tải file normalize.css và thêm vào:

<link rel="stylesheet" href="normalize.css">

Nó sẽ định dạng lại:

  • Headings
  • Lists
  • Form controls
  • Tables
  • Font size hệ thống…

6. Tích hợp vào workflow chuyên nghiệp

Một số framework hiện nay tích hợp sẵn reset hoặc normalize:

FrameworkDùng cái gì?
TailwindPreflight (dạng reset + normalize)
BootstrapNormalize CSS
FoundationNormalize CSS

7. Gợi ý cấu trúc file

styles/
├── reset.css          # Reset đơn giản
├── normalize.css      # Nếu bạn dùng normalize
├── variables.css      # Biến CSS
├── base.css           # Font, color mặc định
├── layout.css         # Flex, grid, section...
├── components.css     # Nút, form, v.v.

Ghi nhớ

Nếu muốn…Nên dùng
Xóa sạch mọi style mặc địnhReset
Giữ lại style hợp lý + đồng nhấtNormalize
Dự án phức tạp, tự thiết kế toàn bộReset
Dự án nhanh, cần ổn địnhNormalize

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.