NTM Solutions

Thứ Hai, 27 tháng 7, 2026

🎯Web Layout 2026 - Phần 2 # Bài 05 — CSS Reset: Đồng bộ giao diện trên mọi trình duyệt

Sau khi hoàn thành phần HTML5 Enterprise, chúng ta đã có thể xây dựng cấu trúc website chuẩn. Tuy nhiên, nếu mở cùng một trang trên Chrome, Firefox, Edge hoặc Safari, bạn sẽ thấy giao diện có thể không giống nhau.

Nguyên nhân là mỗi trình duyệt đều có một bộ CSS mặc định (User Agent Stylesheet) riêng.

Để giải quyết vấn đề này, lập trình viên thường bắt đầu dự án bằng CSS Reset.


🎯 Mục tiêu bài học

Sau bài này bạn sẽ:

  • Hiểu CSS Reset là gì.

  • Biết vì sao cần Reset CSS.

  • Phân biệt CSS Reset và Normalize CSS.

  • Tự xây dựng một bộ Reset hiện đại.

  • Chuẩn bị nền tảng cho Responsive Design và Design System.


CSS Reset là gì?

CSS Reset là tập hợp các quy tắc CSS giúp đưa tất cả các trình duyệt về một điểm xuất phát giống nhau.

Ví dụ:

Chrome có thể đặt:

body {
    margin: 8px;
}

Trong khi trình duyệt khác có thể xử lý khoảng cách hoặc kích thước mặc định khác nhau.

Điều này khiến cùng một mã HTML hiển thị không đồng nhất.


Vì sao cần CSS Reset?

Nếu không Reset CSS:

  • Margin khác nhau.

  • Padding khác nhau.

  • Font mặc định khác nhau.

  • Danh sách (ul, ol) hiển thị khác nhau.

  • Heading có kích thước khác nhau.

  • Form hiển thị không đồng nhất.

Điều này làm quá trình thiết kế giao diện trở nên khó kiểm soát.


Ví dụ

Không Reset:

<h1>Enterprise Web</h1>

<p>Hello World</p>

Bạn sẽ thấy khoảng cách giữa các phần tử phụ thuộc vào trình duyệt.

Sau khi Reset, khoảng cách sẽ do chính bạn quyết định.


CSS Reset cổ điển

Trước đây nhiều lập trình viên sử dụng:

*{
    margin:0;
    padding:0;
}

Đây là cách đơn giản nhất.

Tuy nhiên, nó chưa đủ cho các dự án hiện đại.


Universal Selector

*{
    margin:0;
    padding:0;
}

Dấu * nghĩa là:

Áp dụng cho tất cả phần tử HTML.

Ví dụ:

  • div

  • h1

  • p

  • ul

  • img

  • button

đều bị Reset.


Box-sizing

Đây là dòng gần như luôn có trong mọi dự án.

*{
    box-sizing:border-box;
}

Không có border-box

width = content

+

padding

+

border

Tổng chiều rộng sẽ lớn hơn giá trị bạn khai báo.


Có border-box

width

=

content

+

padding

+

border

Chiều rộng luôn đúng bằng giá trị khai báo.

Đây là cách tính được sử dụng phổ biến trong các dự án hiện đại.


Reset cho body

body{

    margin:0;

}

Loại bỏ khoảng trắng mặc định của trình duyệt.


Reset hình ảnh

img{

    display:block;

    max-width:100%;

}

Ý nghĩa:

display:block

→ loại bỏ khoảng trắng dưới ảnh.

max-width:100%

→ ảnh không vượt quá phần tử cha.

Đây là nền tảng cho Responsive Images.


Reset danh sách

ul,
ol{

    list-style:none;

}

Loại bỏ:

  • dấu chấm

  • số thứ tự

Bạn có thể tự thiết kế giao diện danh sách sau này.


Reset liên kết

a{

    text-decoration:none;

    color:inherit;

}

Giúp:

  • bỏ gạch chân

  • kế thừa màu chữ từ phần tử cha

Sau đó bạn có thể tùy chỉnh màu sắc theo Design System.


Reset Button

button{

    border:none;

    background:none;

    cursor:pointer;

}

Giúp nút có giao diện thống nhất hơn giữa các trình duyệt.


Reset Form

input,
textarea,
select,
button{

    font:inherit;

}

Giúp các thành phần Form sử dụng cùng font với website.


Reset Table

table{

    border-collapse:collapse;

}

Loại bỏ khoảng cách giữa các ô trong bảng.


CSS Reset hiện đại

Đây là bộ Reset đơn giản nhưng phù hợp với hầu hết dự án.

*,
*::before,
*::after{
    box-sizing:border-box;
}

*{
    margin:0;
    padding:0;
}

body{
    line-height:1.5;
}

img{
    display:block;
    max-width:100%;
}

ul,
ol{
    list-style:none;
}

a{
    color:inherit;
    text-decoration:none;
}

input,
button,
textarea,
select{
    font:inherit;
}

table{
    border-collapse:collapse;
}

Đây là một điểm khởi đầu tốt cho các dự án doanh nghiệp.


CSS Reset và Normalize khác nhau thế nào?

CSS Reset

Mục tiêu:

Xóa gần như toàn bộ CSS mặc định của trình duyệt.

Ưu điểm:

  • Đồng nhất.

  • Dễ kiểm soát.

  • Phù hợp Design System.

Nhược điểm:

  • Phải tự định nghĩa lại nhiều kiểu hiển thị.


Normalize CSS

Mục tiêu:

Giữ lại những thiết lập mặc định hữu ích và chỉ sửa những điểm khác biệt giữa các trình duyệt.

Ưu điểm:

  • Ít phải viết lại CSS.

  • Phù hợp nhiều website nội dung.

Nhược điểm:

  • Một số kiểu mặc định vẫn còn tồn tại.


Khi nào dùng Reset?

Nên dùng khi xây dựng:

  • Landing Page

  • Website doanh nghiệp

  • Dashboard

  • CRM

  • ERP

  • SaaS

  • E-Commerce

  • Design System

  • Component Library

Đây cũng là lựa chọn phổ biến trong các dự án Front-End hiện đại.


Những lỗi thường gặp

❌ Chỉ Reset bằng:

*{
    margin:0;
    padding:0;
}

mà quên box-sizing.


❌ Không Reset ảnh khiến hình vượt khỏi khung.


❌ Quên font: inherit cho Form.


❌ Reset quá mạnh rồi không định nghĩa lại kiểu hiển thị cần thiết.


❌ Xóa toàn bộ Focus của trình duyệt mà không thay thế bằng kiểu Focus mới, làm giảm khả năng Accessibility.


Thực hành

Tạo tệp:

reset.css

Bao gồm:

  • Reset Margin

  • Reset Padding

  • Border Box

  • Reset Image

  • Reset List

  • Reset Link

  • Reset Button

  • Reset Form

  • Reset Table

Sau đó nhúng vào một trang HTML và kiểm tra sự khác biệt trước và sau khi áp dụng.


Tổng kết

CSS Reset là bước đầu tiên trong hầu hết các dự án Front-End chuyên nghiệp. Nó giúp loại bỏ sự khác biệt giữa các trình duyệt, tạo nền tảng ổn định để xây dựng giao diện hiện đại và dễ bảo trì.

Trong bài tiếp theo, chúng ta sẽ tìm hiểu CSS Variables, một tính năng mạnh mẽ giúp quản lý màu sắc, khoảng cách và toàn bộ Design System một cách linh hoạt.


📌 Kiến thức đạt được

  • ✅ Hiểu CSS Reset là gì.

  • ✅ Biết nguyên nhân khiến giao diện khác nhau giữa các trình duyệt.

  • ✅ Sử dụng box-sizing: border-box.

  • ✅ Reset hình ảnh, danh sách, liên kết, Form và bảng.

  • ✅ Phân biệt CSS Reset và Normalize CSS.

  • ✅ Xây dựng bộ CSS Reset hiện đại cho dự án Enterprise.

➡️ Bài tiếp theo: Bài 06 — CSS Variables: Xây dựng Design System linh hoạt với Custom Properties.

Không có nhận xét nào:

Đăng nhận xét

Facebook Youtube RSS