2012-02-12 86 views
269

可能重複:
What are the implications of using 「!important」 in CSS?
How do you read !important in CSS?CSS中的重要含義是什麼?

是什麼!important在CSS是什麼意思?
僅適用於css2,css3,IE嗎?

+2

http://www.w3.org/TR/CSS2/cascade.html#important-rules – j08691 2012-02-12 00:35:20

+9

...東西,以避免只要有可能。 – Scott 2012-02-12 00:38:18

+2

可能重複的[你如何閱讀!在CSS中很重要?](http://stackoverflow.com/questions/7369216/how-do-you-read-important-in-css),[使用的含義是什麼「!重要」在CSS?](http://stackoverflow.com/questions/3706819/what-are-the-implications-of-using-important-in-css),也見:[何時使用!重要財產在CSS?](http://stackoverflow.com/questions/5701149/when-to-use-important-property-in-css),[何時使用「!重要」來保存一天(當使用CSS) ](http://stackoverflow.com/questions/2042497/when-to-use-important-to-save-the-day-when-working-with-css) – 2012-02-12 11:36:21

回答

275

它的意思,基本上,它說什麼; '這是重要的,忽略隨後的規則,以及任何常見的特殊性問題,應用這個規則!'

在正常使用中,外部樣式表中定義的規則被文檔的head中定義的樣式所取代,反過來,該樣式被元素內部的內嵌樣式推翻(假設選擇)。使用!important'屬性'(?)定義一個規則會拋棄正常的顧慮,關於覆蓋'早期'規則的'晚期'規則。

此外,通常,更具體的規則將覆蓋較不具體的規則。所以:

a { 
    /* css */ 
} 

通常被否決:

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

由於後者選擇是更具體的(它不,通常情況下,身在何處,更具體的選擇被找到(在head或外部樣式表)它將仍然覆蓋較不具體的選擇器(線型樣式屬性將總是覆蓋「more-」或「less-」,特定的選擇器,因爲它的總是更具體。

但是,如果您將!important添加到不太特定的選擇器的CSS聲明中,它將具有優先級。

使用!important有其目的(儘管我很難想象它們),但它很像使用核爆炸來阻止狐狸殺死你的雞;是的,狐狸會被殺死,但雞也會被殺死。和鄰里。它也使得調試你的CSS成爲一場惡夢(來自個人,經驗,經驗)。

+145

許多開發人員也很困惑,因爲在許多編程中語言的前綴!意味着*不*。 – rustyx 2014-04-01 14:33:04

+8

!重要的一個目的是在GreaseMonkey腳本中,您故意忽略其他人可能比您更具體的CSS。 – Noumenon 2014-04-29 10:29:25

+0

官方W3 [稱它](http://www.w3.org/TR/CSS2/cascade.html#important-rules)爲「規則」。 – 2014-05-30 16:46:32

18

!important是CSS1的一部分。

支持它的瀏覽器:IE5.5 +,Firefox 1+,Safari 3+,Chrome 1+。

這意味着,這樣的:

使用我,如果沒有什麼重要的其他各地!

不能說更好。

+4

'!important'不僅限於Safari 3+;它像所有其他非IE瀏覽器一樣從一開始就支持它。 IE從版本4開始就理解它,但它只支持從版本7開始無bug的版本。 – BoltClock 2012-02-12 10:40:40

85

!重要的規則是讓你的CSS級聯,但也有你覺得最重要的規則總是被應用。無論 規則在CSS文檔中出現的位置,將始終應用具有!重要屬性 的規則。

所以,如果你具備以下條件:

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

與重要的規則將在一個應用(不包括specificity

相信!important出現在CSS1所以每一個瀏覽器支持它(IE4到IE6的部分實現,IE7 +全)

此外,這是你不想經常使用的東西,因爲如果你正在與ot她的人可以覆蓋其他屬性。

+1

IE4 +實際上帶有bug,最多可包含6個。 – BoltClock 2012-02-12 10:41:54

+12

混亂髮生在'!'是NOT中的符號語言,但現在更清晰。 – Si8 2014-03-13 21:00:38

+2

我特別高興你包含了使用'!important'的語法。 CSS與其他語言不同,很容易忘記如何使用某些東西。 – blainarmstrong 2015-10-09 01:00:06

9

它用於影響CSS級聯中的排序,當按原點排序完成時。 它與其他答案中所述的特異性無關。

這裏是優先從最低到最高:(!無重要)

  1. 瀏覽器風格
  2. 用戶樣式表聲明
  3. 作者樣式表聲明
  4. 重要(無重要!)!作者樣式表
  5. !重要的用戶樣式表

之後,針對仍然在手指中餡餅的規則發生特異性。

參考文獻:

+2

secifity =>特異性? – 2012-02-12 11:32:21