2013-12-18 194 views
0

從我讀的css樣式取決於包含順序相互覆蓋。但是我遇到一些奇怪的行爲,在圖片顯示:CSS不能正確覆蓋屬性

enter image description here

可以清楚地看到這default.cssbase.css這將假設從default.css樣式將覆蓋款式base.css後包括在內。然而,情況並非如此,如您所見,base.css的風格依然存在,default.css的風格正在被取消。這是爲什麼?

回答

2

這是因爲CSS類選擇器(例如,在您的示例中爲.marginblock)比CSS類型選擇器(在您的示例中爲body)具有更高的優先級。

如果你的CSS如下,你將有你所期望的行爲:

base.css

.marginblock { 
    margin: 0 auto; 
} 

default.css

.marginblock { 
    margin: 25px; 
} 

這裏的CSS順序詳細優先級:

  1. ID選擇
  2. 屬性選擇器
  3. 類選擇
  4. 子選擇
  5. 相鄰同胞選擇
  6. 後代選擇
  7. 類型選擇

的更多信息可以發現here

+0

您可以在8分鐘內接受答案,doh! –

1

來自default.css的你的風格有一個更具體的選擇器,所以會覆蓋base.css風格。您可能想要了解特定點在確定css如何應用時的工作方式。