2014-02-08 45 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