2012-02-12 37 views
269

thể trùng lặp:
What are the implications of using “!important” in CSS?
How do you read !important in CSS?Điều quan trọng trong CSS là gì?

không !important trong CSS có ý nghĩa gì?
Chỉ dành cho css2, css3, IE?

+2

http://www.w3.org/TR/CSS2/cascade.html#important-rules – j08691

+9

... một cái gì đó để tránh bất cứ khi nào có thể. – Scott

+2

có thể trùng lặp của [Làm thế nào để bạn đọc! Quan trọng trong CSS?] (Http://stackoverflow.com/questions/7369216/how-do-you-read-important-in-css), [Các tác động của việc sử dụng là gì "! Quan trọng" trong CSS?] (Http://stackoverflow.com/questions/3706819/what-are-the-implications-of-using-important-in-css) và cũng thấy: [khi nào sử dụng! Tài sản quan trọng trong css?] (http://stackoverflow.com/questions/5701149/when-to-use-important-property-in-css), [Khi nào sử dụng "! quan trọng" để tiết kiệm trong ngày (khi làm việc với CSS) ] (http://stackoverflow.com/questions/2042497/when-to-use-important-to-save-the-day-when-working-with-css) –

Trả lời

275

Nó có nghĩa là, về cơ bản, những gì nó nói; rằng 'điều này quan trọng, bỏ qua các quy tắc tiếp theo và bất kỳ vấn đề cụ thể thông thường nào, áp dụng quy tắc này!'

Trong sử dụng bình thường, quy tắc được xác định trong biểu định kiểu bên ngoài bị loại bỏ theo kiểu được xác định trong head của tài liệu, do đó, bị loại bỏ theo kiểu nội dòng trong chính phần tử đó. bộ chọn). Việc xác định quy tắc với thuộc tính !important '(?) Sẽ loại bỏ các mối quan ngại bình thường liên quan đến quy tắc' sau 'ghi đè các quy tắc' trước đó '.

Ngoài ra, thông thường, quy tắc cụ thể hơn sẽ ghi đè quy tắc ít cụ thể hơn. Vì vậy:

a { 
    /* css */ 
} 

là thường bị bác bỏ bởi:

body div #elementID ul li a { 
    /* css */ 
} 

Khi chọn thứ hai là cụ thể hơn (và nó không, bình thường, vấn đề mà bộ chọn hơn cụ thể được tìm thấy (trong các head hoặc stylesheet bên ngoài) nó sẽ vẫn ghi đè lên bộ chọn ít cụ thể (in-line phong cách thuộc tính sẽ luôn ghi đè 'thêm-', hay như công cụ chọn cụ thể 'less-' vì nó là luôn luôn cụ thể hơn.

Nếu, tuy nhiên, bạn thêm !important vào khai báo CSS của trình chọn ít cụ thể hơn, nó sẽ được ưu tiên.

Sử dụng !important có mục đích của nó (mặc dù tôi đang cố gắng nghĩ về chúng), nhưng nó giống như sử dụng một vụ nổ hạt nhân để ngăn chặn những con cáo giết gà của bạn; vâng, cáo sẽ bị giết, nhưng gà cũng vậy. Và khu phố.

Nó cũng làm cho gỡ lỗi CSS của bạn một cơn ác mộng (từ cá nhân, kinh nghiệm, kinh nghiệm).

+145

Nó cũng gây nhầm lẫn cho nhiều nhà phát triển như trong nhiều chương trình ngôn ngữ tiền tố! có nghĩa là * không *. – rustyx

+8

Một mục đích quan trọng là trong một tập lệnh GreaseMonkey, nơi bạn cố tình ghi đè CSS của người khác có khả năng cụ thể hơn của bạn. – Noumenon

+0

Chính thức W3 [gọi nó] (http://www.w3.org/TR/CSS2/cascade.html#important-rules) một "quy tắc". –

18

!important là một phần của CSS1.

Trình duyệt hỗ trợ: IE5.5 +, Firefox 1+, Safari 3+, Chrome 1+.

Điều đó có nghĩa, một cái gì đó như:

Dùng tôi, nếu không có gì quan trọng khác xung quanh là!

Không thể nói tốt hơn.

+4

'! Important' không chỉ giới hạn ở Safari 3+; nó đã hỗ trợ nó ngay từ đầu giống như tất cả các trình duyệt không phải IE khác. IE hiểu nó từ phiên bản 4 trở đi, nhưng nó chỉ hỗ trợ nó không có lỗi bắt đầu từ phiên bản 7. – BoltClock

5

Nó thay đổi các quy tắc để ưu tiên ghi đè của các tầng css. Xem the CSS2 spec.

85

Quy tắc quan trọng là một cách để làm cho chuỗi CSS của bạn nhưng cũng có các quy tắc bạn cảm thấy quan trọng nhất luôn được áp dụng. Quy tắc có thuộc tính quan trọng sẽ luôn được áp dụng bất kể quy tắc xuất hiện trong tài liệu CSS.

Vì vậy, nếu bạn có điều sau đây:

.class { 
    color:red !important; 
} 
.outerClass .class { 
    color:blue; 
} 

sự cai trị với quan trọng sẽ được một sự áp dụng (không kể specificity)

Tôi tin !important xuất hiện trong CSS1 như vậy mỗi hỗ trợ trình duyệt nó (IE4 đến IE6 với một phần thực hiện, IE7 + đầy đủ)

Ngoài ra, đó là điều mà bạn không muốn sử dụng khá thường xuyên, bởi vì nếu bạn đang làm việc với ot người của cô, bạn có thể ghi đè lên các tài sản khác.

+1

IE4 +, trên thực tế, có lỗi, đến và bao gồm 6. – BoltClock

+12

Sự nhầm lẫn xảy ra khi '!' Là biểu tượng cho NOT trong một số ngôn ngữ nhưng bây giờ rõ ràng hơn. – Si8

+2

Tôi đặc biệt vui mừng vì bạn đã bao gồm cú pháp để sử dụng '! Important'. CSS là đủ khác nhau từ các ngôn ngữ khác mà nó dễ dàng để quên làm thế nào để sử dụng những thứ nhất định. – blainarmstrong

9

Nó được sử dụng để tác động đến việc sắp xếp trong chuỗi CSS khi sắp xếp theo nguồn gốc được thực hiện. Không có gì liên quan đến tính đặc hiệu như được nêu ở đây trong các câu trả lời khác.

Đây là ưu tiên từ thấp nhất đến cao nhất: (! Mà không quan trọng)

  1. phong cách trình duyệt
  2. tờ khai tờ sử dụng phong cách
  3. tờ khai tờ giả phong cách
  4. quan trọng (không quan trọng!)! tấm phong cách tác giả
  5. ! tờ phong cách người dùng quan trọng

Sau tính chuyên biệt đó diễn ra đối với các quy tắc vẫn có ngón tay trong chiếc bánh.

Tài liệu tham khảo:

+2

secifity => specificity? –

Các vấn đề liên quan