Khi nhiều rule cùng nhắm một phần tử, trình duyệt chọn rule có specificity cao nhất. Tính theo bộ ba (A, B, C):
- A — số ID selector (
#id). - B — số class, attribute, pseudo-class (
.x,[type],:hover). - C — số element và pseudo-element (
div,::before).
So sánh lần lượt A → B → C, bên nào lớn hơn thắng. Ngoài thang này:
- Inline style (
style="…") mạnh hơn mọi selector trong stylesheet. !importantđè lên tất cả (trừ một!importantkhác cùng cấp) — nên tránh, dấu hiệu CSS khó bảo trì.- Cùng specificity → rule viết sau thắng (thứ tự nguồn).
- *Universal
,:where()có specificity 0**.
Thực hành: giữ specificity thấp và đều (ưu tiên class), tránh lồng ID và !important.