一个 CSS 类可以包含其他两个类吗

Posted

技术标签:

【中文标题】一个 CSS 类可以包含其他两个类吗【英文标题】:Can a CSS class contain two other classes 【发布时间】:2014-04-21 16:33:14 【问题描述】:

我刚想按如下方式组织我的工作:

创建非常基本的 CSS 类,例如:

.backgroundRed 
    background-color:red;



.backgroundGreen 
    background-color:green;



.fixed300 
    width:300px;


.percent100 
    width: 100%;


.centered 
    margin: auto;


.centeredTextHorizontally 
    text-align:center;


.colorWhite 
    color:white;

然后同时使用其中的 2-3-4 个,来创建我想要的,例如:

<div class = "backgroundGreen fixed300 centered">
<div class="centeredTextHorizontally">300px wide green stripe with centered text</div>
<div class="centeredTextHorizontally colorWhite">Centered white text</div>
</div>
</div>

我相信你明白了。

现在的问题是,如果将来我们想更改网站,我们需要编辑所有这些 DIV 的 html,这首先打破了使用 CSS 的初衷。

所以我希望能够如下定义 CSS 类

.navbar 
.colorRed;
.backgroundColorGreen;

etc 等等。例如,如果需要更改网站颜色,我只更改 .navbar 而不是 HTML 中的 DIV。

是否可以执行上述操作以及如何执行?

【问题讨论】:

【参考方案1】:
.navbar 
    .colorRed;
    .backgroundColorGreen;

这不是 css 规则。您必须使用如下类 -

.navbar.colorRed.backgroundColorGreen 
    /* Your css styles */

注意,类名和旁边的点.之间没有空格。

【讨论】:

【参考方案2】:

使用纯 css 是不可能的。您将需要查看 CSS 预处理器。两个流行的称为 SassLess。这些链接应该为您提供有关它们的更多信息:

    Sass

    Less

这将帮助您着手解决您的具体问题:

    including another class in Sass

【讨论】:

为了给出更公平和全面的答案,还应提及LESS等其他工具。 使用 CSS 预处理器(如 SASS 或任何其他工具)的开销是多少? 或者简单地说CSS preprocessor 比如sass,less,stylus @dewd 大多数构建过程将编译 Less/Sass/etc。在部署之前将代码转换为 CSS,然后在生产/实时环境中使用,这样就不必在页面加载时即时完成。 @dewd 不,这只是文本文件。除非您有巨大的样式文件,但这表明存在其他问题:)。

以上是关于一个 CSS 类可以包含其他两个类吗的主要内容,如果未能解决你的问题,请参考以下文章

我可以在css中创建一个默认类吗?

可以在 Objective-C 中组合两个用户类吗?

一个元素可以同时有一个id和一个类吗?

我可以在条件 [ngCLASS] 下编写 CSS 类吗

可以在一个.java文件中写两个类吗?

我可以使用下划线开始 CSS 选择器 ID 或类吗? [复制]