Document Giới thiệu về CSS

Giới thiệu về CSS

Tìm hiểu cách giải quyết xung đột CSS thông qua quy tắc tầng, độ ưu tiên, kế thừa và vị trí khai báo—yếu tố quan trọng để quản lý phong cách hiển thị trong Nilead.

Table of content

TL;DR / Tổng quan

Trong CSS, xung đột xảy ra khi nhiều quy tắc kiểu cùng áp dụng cho một phần tử. Cascade (chuỗi ưu tiên) xác định cách trình duyệt quyết định quy tắc nào sẽ được áp dụng — dựa trên thứ tự, mức độ ưu tiên (specificity), kế thừa và !important. Hiểu về thứ bậc này là điều quan trọng giúp bạn kiểm soát hiệu quả giao diện trong Visual Editor của Nilead và khi viết CSS tùy chỉnh.

Điều kiện tiên quyết

  • Hiểu biết về HTML và cú pháp CSS cơ bản

  • Có quyền truy cập Bảng Kiểu (Style Panel) hoặc bảng Mã Tùy chỉnh (Custom Code) của Nilead

  • Có ít kinh nghiệm áp dụng class, ID, và selector

Hướng dẫn

Cascade là gì?

Cascade là hệ thống mà trình duyệt dùng để xác định quy tắc CSS nào sẽ áp dụng khi nhiều quy tắc cùng nhắm đến một phần tử.

Ví dụ:

h1 { color: red; } 
h1 { color: blue; }
<h1>This is my heading</h1>
css-example-1
Nó là màu xanh! Tại sao?????

Văn bản hiển thị màu xanh vì quy tắc thứ hai được khai báo sau và có cùng mức độ ưu tiên (specificity).

Specificity: Ai chiến thắng?

Specificity (độ ưu tiên) đo lường mức độ "nhắm chính xác" của một selector:

  • Selector phần tử (h1, p) là mức thấp nhất

  • Selector class (.title) có độ ưu tiên cao hơn

  • Selector ID (#hero) là cao nhất (không tính !important)

Ví dụ:

h1 { color: blue; } 
.main-heading { color: red; }
<h1 class="main-heading">This is my heading</h1>
css-example-2
Nó là màu đỏ! Tại sao?????

Nó sẽ là màu đỏ, vì .main-heading có độ ưu tiên cao hơn h1.

Biện pháp mạnh: !important

Khai báo !important ghi đè tất cả các quy tắc khác — ngay cả khi chúng có độ ưu tiên cao hơn hoặc được khai báo sau.

Ví dụ:

#winning { background-color: red; } 
.better { background-color: gray !important; }
<p class="better" id="winning">One selector to rule them all!</p>

css-example-3

Đoạn văn này sẽ có màu xám, không phải đỏ — vì !important sẽ ghi đè mọi quy tắc khác.

Chỉ nên sử dụng !important khi thực sự cần thiết — nó khiến CSS khó kiểm soát và điều chỉnh hơn.

Tính kế thừa: Các kiểu dáng tự động truyền xuống

Một số thuộc tính (như color, font-family) sẽ được kế thừa từ các phần tử cha sang phần tử con.

body { color: blue; }

Tất cả văn bản bên trong đều sẽ có màu xanh lam, trừ khi có quy tắc khác ghi đè.

Để kiểm soát việc kế thừa, CSS cung cấp các giá trị đặc biệt:

Từ khóa

Hành vi

inherit

Bắt buộc thuộc tính giống như phần tử cha

initial

Thiết lập lại giá trị mặc định của trình duyệt

unset

Cư xử như inherit với thuộc tính có thể kế thừa, còn lại sẽ giống như initial

revert

Trở lại kiểu của trình duyệt/người dùng (hỗ trợ còn hạn chế)

Vị trí viết CSS rất quan trọng

Bạn có thể viết CSS tại ba vị trí:

Phương pháp

Độ ưu tiên

Ví dụ

CSS nội dòng (Inline CSS)

Cao nhất (trừ !important)

<h1 style="color: red;">

CSS nội bộ (Internal CSS)

Trung bình

Bên trong thẻ <style> trong <head>

CSS bên ngoài (External CSS)

Thấp nhất

Kết nối file .css bên ngoài

🔥 Thứ tự quan trọng — các quy tắc viết sau có thể ghi đè các quy tắc trước nếu có cùng mức độ cụ thể.

Tóm tắt thứ tự xếp chồng (Cascade Order)

Kiểu dáng cuối cùng = tổng hợp kết quả của tất cả các quy tắc phù hợp, áp dụng theo thứ tự này (từ cao đến thấp):

  1. Kiểu nội dòng

  2. Bảng định kiểu nội bộ (trong thẻ <style>)

  3. Bảng định kiểu bên ngoài (liên kết trong thẻ <head>)

  4. Mặc định trình duyệt

Thêm !important để đảm bảo một quy tắc sẽ ghi đè tất cả quy tắc khác.


Câu hỏi thường gặp

1. Điều gì xảy ra nếu có hai quy tắc có cùng độ cụ thể?
Quy tắc nào được khai báo sau sẽ thắng.

2. Liệu !important có vượt qua độ cụ thể không?
Có — nó ghi đè cả độ cụ thể và thứ tự quy tắc.

3. Tôi có thể ghi đè kiểu dáng kế thừa không?
Có — bạn chỉ cần đặt một quy tắc cụ thể hơn hoặc sử dụng initial, unset hoặc inherit.

4. Cách tổ chức CSS an toàn nhất trong Nilead là gì?
Hãy sử dụng class để có thể tái sử dụng, và quản lý sự ghi đè qua Style Panel hoặc CSS bên ngoài, không dùng inline.

5. Tôi có thể sử dụng nhiều stylesheet không?
Có, nhưng hãy chú ý đến thứ tự tải — các stylesheet tải sau có thể ghi đè những stylesheet trước.

Discord chat

We're available Monday–Friday, security and critical bug fixes are available 24/7.

Facebook page

Get the latest news and updates regarding Nilead platform and services.