0

假设我有 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 吗?

4

2 回答 2

3

严格来说,没有。

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

换句话说,您不能仅在 CSS 中构建所需的 A、B 和 C 之间的关系。使用正确的 DOM,您可以做到。但是,如果您不希望 B 和 C 在 DOM 中成为 A 的孩子,那么您就不走运了。

于 2013-10-24T16:27:24.150 回答
2

您必须创建div .A一个父级div .Bdiv .C然后将backgroundB 和 C 上的属性设置为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 */
}
于 2013-10-24T16:29:34.287 回答