2014-02-08 77 views
1

我已經嵌套在一個#wrapper指定格內幾個div的,像這樣#wrapper指定的div {...}樣式覆蓋特定的ID風格

<div id="wrapper"> 
     <div id="one"></div> 
     <div id="two"></div> 
     <div id="three"></div> 
    </div> 

我的造型都div的包裝內,還需要一些具體的內部div的樣式。像這樣的例子。

#wrapper div{ 
    background-color: grey; 
} 

#one{ 
    background-color: blue; 
} 

,而不是背景色#one格是藍色的,#wrapper指定格樣式覆蓋它和背景顏色爲灰色。

我知道我可以使用!很重要,但是這樣做需要將其應用於每種不同於重寫樣式的樣式,這可能會跨越多個div。必須有更好的方法來做到這一點?

+0

是否可以重現錯誤的jsfiddle? – Bill

回答

3

因爲有一個id的父元素的特殊性,你需要爲你的其他分區創建一個較高的特異性規則這樣:

#wrapper div{ 
    background-color: grey; 
} 

#wrapper #one{ 
    background-color: blue; 
} 
+0

非常感謝!有道理,雖然我真的希望CSS的默認功能沒有做到這一點。從正常的級聯中看起來不合適。它可能比我正在使用的任何東西都有更高層次的應用程序。 – SometimesDirty

+0

你可以嘗試添加類,如果你可以的話,這將允許你以更「正常」的方式使用CSS。如果你想更多地瞭解特異性,這是一個很好的閱讀:http://css-tricks.com/specifics-on-css-specificity/ – joseeight

1

您可以只覆蓋它通過提供更具體的規則你#one DIV這樣的:

#wrapper #one{ 
    background-color: blue; 
} 

Fiddle Demo

+0

非常感謝!謝謝你的小提琴 – SometimesDirty