这是HTML:
<div id="testBlue">
<span>hello</span>
<span id="testGreen" class="testGreen">hello2</span>
</div>如果我在CSS中设置了:
#testBlue span { color:Blue; }
.testGreen, #testGreen { color:Green; }如何在第二个跨度中覆盖常规样式?
我尝试过id和class选择器,但它没有覆盖它。
发布于 2008-11-18 11:21:11
在CSS中,具有更高特异性的选择器会覆盖更通用的选择器。
在您的示例中,您在id = "testBlue"的中定义了div span的样式。这个选择器比类或id testGreen的简单选择器更具体,所以它赢了。您只需要一个比#testBlue span更具体的选择器,这并不难找到:
#testBlue span.testGreen {
color: green;
}发布于 2008-11-18 11:18:50
不要使用重要的,像这样给它更多的权重
#testBlue span { color:Blue; }
#testblue #testgreen{color:Red}编辑
我已经学会了使用!重要的是糟糕的实践
css中的某些对象在决定应用规则时具有不同的权重
请参阅http://htmldog.com/guides/cssadvanced/specificity/
我认为使用重要但更好的实践来使用权重来表示专用性并没有错。
发布于 2008-11-18 11:16:09
#testGreen { color: red !important;}或
.testGreen { color: red !important;}任何一个都会覆盖继承的规则,因为!important将更多的权重放在了另一个相等的决策的一侧。
https://stackoverflow.com/questions/298463
复制相似问题