2

我试图找到答案,但似乎无法做到,这让我相信这是不可能的。以我对 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 */
}

background-color: .black;基本上只是“从 .black 类定义中获取背景颜色属性”的占位符。这可能使用纯CSS吗?我知道 PHP/JS 有很多替代品,但我想知道 CSS 是否可以自己解决这个问题。多谢你们。

4

3 回答 3

3

SASS是一件好事。你的代码会像

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

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

SASS

SASS PHPSASS的 PHP 编译器

也有基于 javascript 的解决方案,比如LESS,但我通常不推荐它们,因为 Javascript 加载缓慢然后演示变得生涩。

于 2013-03-20T06:22:16.190 回答
2

不,这在 CSS 中目前是不可能的。CSS 没有变量或引用先前规则中的值的能力。在进入网站之前,您必须寻找一种可以处理成纯 CSS 的 CSS 预处理语言。

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

于 2013-03-20T06:21:24.840 回答
1

是的,可以使用SASSLESS css

@bgcolor : black;


.newClass {
    width: 100%;
    height: 100%;
    background-color:@bgcolor;
}
于 2013-03-20T06:27:01.560 回答