Bạn có nên tránh CSS quan trọng?

Dấu phân cách

a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}
1 theo sau là từ khóa
a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}
2 đánh dấu phần khai báo là quan trọng. Cờ
a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}
3 thay đổi các quy tắc chọn khai báo bên trong tầng. Một khai báo không quan trọng được gọi là bình thường

Để đánh dấu một tuyên bố là quan trọng, hãy thêm cờ quan trọng (______13) sau giá trị trong tuyên bố. Mặc dù khoảng trắng được cho phép giữa dấu phân cách và từ khóa, cờ thường được viết là

a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}
3 mà không có bất kỳ khoảng trắng nào

selector {
  property: value; /* normal declaration */
  property: value !important; /* important declaration (preferred) */
  property: value ! important; /* important declaration (not preferred) */
}

a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}
3 xuất hiện sau giá trị của khai báo cặp giá trị thuộc tính, trước ít nhất một khoảng trắng. Cờ quan trọng phải là mã thông báo cuối cùng trong khai báo. Nói cách khác, có thể có khoảng trắng và nhận xét giữa cờ và dấu chấm phẩy kết thúc của tuyên bố, ngoài ra không có gì khác

Khi nói đến các khai báo quan trọng, thứ tự tầng gốc và tầng được đảo ngược. Nếu không có cờ quan trọng, các khai báo trong biểu định kiểu của tác giả sẽ ghi đè các khai báo trong biểu định kiểu của người dùng, khai báo này sẽ ghi đè các khai báo trong biểu định kiểu mặc định của tác nhân người dùng

Khi một tuyên bố là quan trọng, thứ tự ưu tiên được đảo ngược. Các khai báo được đánh dấu là quan trọng trong biểu định kiểu tác nhân người dùng sẽ ghi đè tất cả các khai báo quan trọng trong biểu định kiểu tác nhân người dùng. Tương tự, tất cả các khai báo quan trọng trong biểu định kiểu của người dùng sẽ ghi đè lên tất cả các khai báo quan trọng trong biểu định kiểu của tác giả. Cuối cùng, tất cả các khai báo quan trọng được ưu tiên hơn tất cả các hoạt ảnh

Ghi chú. Tất cả các khai báo quan trọng được ưu tiên hơn tất cả các hoạt ảnh.

a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}
3 không hợp lệ trong khai báo hoạt hình @keyframes

Đảo ngược thứ tự ưu tiên cho các khai báo quan trọng đảm bảo người dùng có nhu cầu đặc biệt, chẳng hạn như phối màu được cá nhân hóa hoặc phông chữ lớn, có thể ghi đè kiểu tác giả khi cần bằng cách đánh dấu một số khai báo trong biểu định kiểu của người dùng là quan trọng. Nó cũng đảm bảo các tiện ích mở rộng độc hại không thể ghi đè các kiểu tác nhân người dùng quan trọng, có thể phá vỡ chức năng hoặc tác động tiêu cực đến bảo mật

Có bất cứ điều gì được ưu tiên hơn các tuyên bố quan trọng? . Chuyển đổi CSS là một cách để kiểm soát tốc độ thay đổi thuộc tính từ giá trị này sang giá trị khác. Trong khi chuyển đổi từ giá trị này sang giá trị khác, một thuộc tính sẽ không khớp với một khai báo quan trọng cụ thể

a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}

Trong ví dụ này, thuộc tính

a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}
4 và
a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}
5 sẽ chuyển sang trạng thái lơ lửng trong hai giây. Mặc dù trạng thái mặc định là khai báo bình thường và trạng thái di chuột là khai báo
a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}
3, quá trình chuyển đổi vẫn xảy ra

Trong mỗi một trong ba nguồn gốc của biểu định kiểu - tác giả, người dùng và tác nhân người dùng - các khai báo thông thường trong các kiểu không có lớp sẽ ghi đè các khai báo kiểu có lớp, với lớp được khai báo cuối cùng có quyền ưu tiên hơn các lớp được khai báo trước nó. Các khai báo quan trọng đảo ngược thứ tự ưu tiên. các khai báo quan trọng ở lớp đầu tiên được ưu tiên hơn các khai báo quan trọng ở lớp tiếp theo, v.v. Ngoài ra, tất cả các khai báo quan trọng được ưu tiên hơn các khai báo quan trọng được thực hiện bên ngoài bất kỳ lớp nào

Kiểu nội tuyến là kiểu được xác định bằng thuộc tính

a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}
7. Chúng cũng có thể là bình thường hoặc quan trọng. Các kiểu thông thường nội tuyến được ưu tiên hơn tất cả các khai báo thông thường, bất kể nguồn gốc. Các kiểu quan trọng nội tuyến được ưu tiên hơn tất cả các kiểu tác giả quan trọng khác, bất kể lớp nào, nhưng các kiểu quan trọng từ biểu định kiểu của người dùng hoặc tác nhân người dùng và chuyển tiếp sẽ ghi đè chúng

Mặc dù

a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}
3 không phải là một phần của việc xác định tính đặc hiệu, nhưng nó có liên quan. Các khai báo quan trọng sẽ ghi đè tất cả các khai báo khác từ cùng một lớp gốc và tầng

#myElement#myElement#myElement .myClass.myClass p:hover {
  color: blue;
}

p {
  color: red !important;
}

Ví dụ này hiển thị trường hợp chỉ định quá mức bộ chọn. Cho dù mức độ cụ thể của bộ chọn phù hợp với một khai báo thông thường cao đến mức nào, thì một khai báo quan trọng từ cùng một nguồn và tầng tầng sẽ luôn được ưu tiên. Trong trường hợp này, đoạn văn sẽ luôn có màu đỏ

Khi hai khai báo quan trọng từ cùng một nguồn gốc và lớp áp dụng cho cùng một phần tử, các trình duyệt sẽ chọn và sử dụng khai báo có tính đặc hiệu cao nhất

#myElement p {
  color: green !important;
}

p {
  color: purple !important;
}

Trong trường hợp này, tính đặc hiệu của bộ chọn có vấn đề. Chỉ khi các bộ chọn có cùng độ đặc hiệu thì thứ tự nguồn mới quan trọng

Khai báo một thuộc tính tốc ký với

a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}
3 đặt tất cả các thuộc tính phụ là quan trọng. Hai khối kiểu bộ chọn sau đây là tương đương

p {
  background: blue !important;
}

p {
  background-image: none !important;
  background-position: 0 0 !important;
  background-size: auto auto !important;
  background-repeat: repeat !important;
  background-origin: padding-box !important;
  background-clip: border-box !important;
  background-attachment: scroll !important;
  background-color: blue !important;
}

Ví dụ này cho thấy một trong nhiều lý do tránh cờ quan trọng thường được khuyến nghị

Khi cờ

a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}
3 được thêm vào khai báo giá trị thuộc tính tùy chỉnh, nó làm cho việc gán giá trị trở nên quan trọng. Cờ
a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}
3 sau đó bị tước khỏi giá trị thuộc tính tùy chỉnh. Cờ
a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}
3 không được chuyển như một phần của giá trị thuộc tính tùy chỉnh cho hàm
#myElement#myElement#myElement .myClass.myClass p:hover {
  color: blue;
}

p {
  color: red !important;
}
3

:root {
  --myColor: red !important;
  --myColor: blue;
}
p {
  color: var(--myColor);
  }
blockquote {
   color: var(--myColor);
   color: purple;
}

a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}
0

Trong ví dụ này, đoạn văn sẽ có màu đỏ, không phải màu xanh, vì việc gán giá trị thuộc tính tùy chỉnh rất quan trọng. Blockquote sẽ có màu tím, vì khai báo bình thường màu tím xuất hiện sau khai báo bình thường màu đỏ

Tránh sử dụng

a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}
3 để ghi đè tính đặc hiệu. Khi cố tình tạo các khai báo quan trọng cho các yêu cầu giao diện người dùng, hãy nhận xét trong mã CSS của bạn để giải thích cho người bảo trì lý do tại sao họ không nên ghi đè tính năng đó

Ngay cả khi làm việc để ghi đè các kiểu có độ đặc hiệu cao không thuộc quyền kiểm soát của bạn, chẳng hạn như các kiểu trong plugin của bên thứ 3 được khai báo bằng bộ chọn id, bạn không cần sử dụng

a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}
3. Thay vào đó, hãy cân nhắc nhập tập lệnh biểu định kiểu của bên thứ 3 vào một lớp có tên hoặc ẩn danh làm lớp xếp tầng đầu tiên của bạn, thay vì sử dụng
a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}
3. Miễn là các kiểu bên ngoài không bao gồm các khai báo quan trọng, các kiểu của bạn sẽ được ưu tiên hơn các kiểu widget, bất kể tính đặc hiệu

Nếu bạn cần ghi đè biểu định kiểu dáng bên ngoài có chứa các khai báo quan trọng, hãy tạo một tầng tầng chứa các giá trị thay thế cần thiết và khai báo lớp đó trước

Các kiểu quan trọng từ biểu định kiểu người dùng được ưu tiên hơn các khai báo quan trọng của biểu định kiểu tác giả, nghĩa là việc thêm cờ

a {
  color: red !important;
  background-color: yellow;
  transition: all 2s linear;
}
a:hover {
  color: blue !important;
  background-color: orange !important;
}
3 vào kiểu của trang web sẽ không ngăn người dùng cá nhân có yêu cầu đặc biệt, chẳng hạn như phông chữ lớn, có thể ghi đè kiểu của bạn bằng cách thêm các kiểu quan trọng

Tại sao bạn không nên sử dụng CSS quan trọng?

Việc sử dụng. quan trọng được coi là một thực hành chống mẫu và xấu. . quan trọng sẽ ghi đè tất cả các khai báo khác và làm cho mã CSS khó bảo trì và gỡ lỗi hơn . Điều duy nhất có thể ghi đè lên một.

Chúng ta có thể sử dụng cái gì thay vì quan trọng trong CSS?

Tiến về phía trước
Thứ tự nguồn đề cập đến thứ tự các kiểu của bạn được viết. .
Tính kế thừa cho phép phần tử con kế thừa các kiểu từ phần tử cha. .
Quy tắc cụ thể được ưu tiên hơn quy tắc đặt hàng nguồn

Khi nào bạn nên sử dụng quan trọng?

điều quan trọng là khi bạn có một phong cách đặc biệt mà bạn muốn tạo phong cách bên ngoài tầng thông thường của trang web của mình

Thứ tự CSS có quan trọng không?

Các vấn đề về đơn đặt hàng CSS . Nếu tồn tại một quy tắc từ cùng một biểu định kiểu, có cùng mức độ cụ thể, thì quy tắc được khai báo cuối cùng trong tài liệu CSS sẽ là quy tắc được áp dụng. In CSS, the order in which we specify our rules matters. If a rule from the same style sheet, with the same level of specificity exists, the rule that is declared last in the CSS document will be the one that is applied.