可以在CSS的新定义中使用以前的类声明吗?

可以在CSS的新定义中使用以前的类声明吗?,css,inheritance,Css,Inheritance,我试图找到答案,但似乎找不到,这让我相信这是不可能的。虽然我对CSS的工作原理知之甚少,但我也不认为这是可能的,但我只是想在开始解决一个可能存在或不存在的问题之前先问一下 基本上,我要做的是在CSS样式表中的新类中使用以前定义的属性。例如,假设我有几个类只包含背景或字体颜色,如下所示: .black { background-color: #000000; color: #000000; } .white { background-color: #FFFFFF; color: #FFFFFF;

我试图找到答案,但似乎找不到,这让我相信这是不可能的。虽然我对CSS的工作原理知之甚少,但我也不认为这是可能的,但我只是想在开始解决一个可能存在或不存在的问题之前先问一下

基本上,我要做的是在CSS样式表中的新类中使用以前定义的属性。例如,假设我有几个类只包含背景或字体颜色,如下所示:

.black { background-color: #000000; color: #000000; }
.white { background-color: #FFFFFF; color: #FFFFFF; }
现在,如果我正在定义一个新类(或者为此使用任何选择器),是否可以使用现有类中的属性值?以下是我的想法:

.newClass {
    width: 100%;
    height: 100%;
    background-color: .black; /* this would just get the background-color attribute from the .black class definition */
}

背景色:。黑色基本上只是“从.black类定义中获取背景色属性”的占位符。这是否可能使用纯CSS?我知道PHP/JS有很多替代方案,但我想知道CSS是否能够自己解决这个问题。谢谢大家。

不,这在CSS中目前是不可能的。CSS没有变量,也不能引用以前规则中的值。您必须寻找一种CSS预处理语言,在进入web站点之前将其处理为纯CSS


如果您愿意采用预处理方式,可以查看或。

SASS是一种选择。您的代码如下

@mixin black-theme {
.black { background-color: #000000; color: #000000; }
}

.newClass {
    width: 100%;
    height: 100%;
    @include black-theme;
}

SASS的PHP编译器

也有类似的基于javascript的解决方案,但我通常不推荐它们,因为如果javascript加载速度慢,那么表示就会变得急促。

是的,可以使用或css


不。CSS(目前)不支持这样的东西。CSS在很多方面都是缺乏的,这个层次的“继承”就是其中之一。这可能会让你大吃一惊。试试看。对于php来说,有。哇,这太不可思议了!我已经有7-8年没有做过web开发了,现在有多少优秀的API和框架让开发人员思考“大局”,这每天都让我感到惊讶。谢谢大家一如既往的回答,我会接受的,但我不能!
@bgcolor : black;


.newClass {
    width: 100%;
    height: 100%;
    background-color:@bgcolor;
}