声明一个全局CSS属性?这可能吗?

时间:2012-05-04 05:44:29

标签: css

我有一个非常奇怪的问题,我不知道是否有可能在css中

假设我已经说了3个不同的css类,如下所示,你可以看到我有一个所有这些类的公共属性,我想在其他地方声明这个颜色并在这里传递一个引用,所以如果下次我想要改变我可以在一个地方改变的颜色,而不是改变所有5个类别。

我知道您可以使用body {}或包装器,但这会影响整个网站的颜色吗?有没有办法做到这一点?

这甚至可能吗?

.abc {
color:red;
}

.abc2 {
color:red;
}

.abc3 {
color:red;
}

.abc4 {
color:red;
}

.abc5 {
color:red;
}

5 个答案:

答案 0 :(得分:2)

坏消息:你不能用CSS做到这一点。

好消息:您可以使用像LESS这样的元CSS语言编写,然后将LESS文件处理为纯CSS。这被称为“mixin”。

很少:

@errorColor: red;

.error-color {
  color: @errorColor;
}

#error-1 {
  .error-color;
}

.all-errors {
  .error-color;
}

更多信息:http://lesscss.org/#-mixins

答案 1 :(得分:1)

如果您想一次声明所有这些内容,可以使用:

.abc, .abc2, .abc3, .abc4, .abc5 {
  color:red;
}

或者你可以宣布一个额外的课程&添加到所有.abc,.abc2 ....&使它的颜色:红色;。

答案 2 :(得分:0)

使用CSS无法做到这一点,但使用CSS预处理器(如LESS,SASS,SCSS或Stylus)仍然非常流行。

预处理器可以让你定义一个变量(比如$ red =#F00)。它将用您的变量值替换CSS文档中的变量,允许您编写非常DRY和模块CSS。

答案 3 :(得分:0)

此功能称为“CSS变量”,它是future spec的一部分,但尚未在任何浏览器上实现。

目前,在纯CSS中执行此操作的最佳方法是为所需的“全局”声明一个附加类,然后将该类添加到所有相关项。

.abc_global { color: red; }
.abc1 { /* additional styling */ }
.abc2 { /* additional styling */ }

<div class="abc1 abc_global"></div>
<div class="abc2 abc_global"></div>

答案 4 :(得分:0)

LESS

您可以定义一次红色:

.myRedColor {

color:red;

}

现在你可以在任何CSS样式上调用红色。甚至NESTED风格!这是一个邪恶的工具!

.abc1 {

 .myRedColor;

}
.abc2 {

 .myRedColor;

}
.abc3 {

 .myRedColor;

}
.abc4 {

 .myRedColor;

}

嵌套示例:

  .abc {

    .itsEasyAsOneTwoThree{
       .myRedColor;

    }

   }

现在我们所有正确嵌套在“abc”类中的“itsEasyAsOneTwoThree”类都将被赋予红色样式。不再记得那些长#867530颜色代码:)那有多酷?!

相关问题