仅在CSS中将div中的颜色继承到另一个

时间:2013-10-24 16:19:44

标签: javascript css css3

假设我有3个Div,一个叫做A,其他就是B和C,在CSS中,Div A,B和C将始终具有与下面CSS示例中显示的相同的背景颜色。

div .A {
   background-color: black;
}

div .B {
   background-color: black;
}

div .C {
   background-color: black;
}

我的问题:无论如何我可以改变div A的背景颜色,然后其他div B和C实际上会拉出应用于A的任何颜色并继承它吗?我可以只使用CSS吗?

2 个答案:

答案 0 :(得分:3)

严格来说,没有。

CSS类上没有类级继承。属性可以通过DOM层次结构传播,但是没有直接的方法可以使类B和C从A的定义继承背景颜色。对于要共同共享的属性,通常只需应用一个公共类那些DOM元素。

换句话说,你不能仅仅在CSS中构建A,B和C之间的理想关系。有了正确的DOM,你就可以做到。但如果你不希望B和C在DOM中成为A的孩子,那么你就不幸了。

答案 1 :(得分:2)

您必须让div .A成为div .Bdiv .C的父级,然后将B和C上的background属性设置为inherit。这样,B和C(A的孩子)从字面上继承了他们的父母。

或者,您可以创建一个不同的类(比如说“父”)并让div .Bdiv .C div .A继承自div .parent

<div class="parent">
    <div class="A"></div>
    <div class="B"></div>
    <div class="C"></div>
</div>

.parent {
    background: red;
}

.A {
    background: black; /* let's change this for the sake of being rogue */
}

.B, .C {
    background: inherit; /* will inherit "red" from .parent */
}