如何使CSS规则在另一个div标签内采取不同的行为?

时间:2014-02-01 22:26:07

标签: html css

假设我有一个CSS规则:

.rule1 {
    background: #FFF;
}

我希望这个CSS规则在另一个div标签内的行为不同,如下所示:

<div class="container">
<div class="rule1"></div> <!-- End of Rule1 -->
</div> <!-- End of Container -->

如果此rule1 div位于容器div内,我希望.rule1的背景为#CCC

如何在CSS中指定它?

我见过并尝试过这样的事情:

.container: rule1 {background:#CCC}

但它不起作用。

感谢。

5 个答案:

答案 0 :(得分:2)

.container .rule1 {  }

CSS嵌套选择器,意思.rule1位于.container

答案 1 :(得分:1)

您不需要冒号:

.container .rule1 {
    background: #CCC;
}

答案 2 :(得分:0)

.rule1 {
     background:#FFF;
}
div.rule1 { /* if you want it applied just for divs with that class */
    background:#CCC;
}
.container .rule1 { /* if you want it applied to any child of .container */
    background:#111;
}

.container div.rule1 { /* if you want it applied to any child of .container that is only a div */
    background:#111;
}

答案 3 :(得分:0)

jsFiddle Demo

您需要在嵌套时使用特异性来定位该规则,然后将其定义设置为inherit或您感兴趣的替代方案。

所以对于这个结构

<div class="container">
 <div class="rule1">rule1 nested</div>
</div>
<div class="rule1">rule1</div>

看起来像这样

.rule1 {
 background:#000;
 color:#fff;
}
.container .rule1{
 background:inherit;/*or alternative definition*/
 color:inherit;/*or alternative definition*/
}

答案 4 :(得分:0)

.container .rule{
     /*your valid css rule*/
}