是否可以创建一个从另一个CSS类(或多个)“继承”的CSS类。

例如,假设我们有:

.something { display:inline }
.else      { background:red }

我想做的是:

.composite 
{
   .something;
   .else
}

其中“.composite”类将显示为内联,并具有红色背景


当前回答

我意识到这个问题已经很老了,但是,这里什么都没有!

如果目的是添加一个包含多个类的财产的类作为本机解决方案,我建议使用JavaScript/jQuery(jQuery确实不是必需的,但确实很有用)

例如,如果您有从.baseClass1和.baseClass2“继承”的.bumbellaClass,则可以有一些JavaScript在就绪时启动。

$(".umbrellaClass").addClass("baseClass1");
$(".umbrellaClass").addClass("baseClass2");

现在.umbrellaClass的所有元素都将具有.baseClasss的所有财产。请注意,与OOP继承一样,.umbrellaClass可能有也可能没有自己的财产。

这里唯一需要注意的是,是否有动态创建的元素在代码触发时不存在,但也有简单的方法可以解决。

不过,Sucks css没有原生继承。

其他回答

不要忘记:

div.something.else {

    // will only style a div with both, not just one or the other

}

正如其他人所说,您可以向一个元素添加多个类。

但这不是真正的重点。我明白你关于遗产的问题。真正的问题是CSS中的继承不是通过类来实现的,而是通过元素层次结构来实现的。因此,要对继承的特性进行建模,需要将它们应用于DOM中不同级别的元素。

你能做的就是这个

CSS

.car {
  font-weight: bold;
}
.benz {
  background-color: blue;
}
.toyota {
  background-color: white;
}

HTML

<div class="car benz">
  <p>I'm bold and blue.</p>
</div>
<div class="car toyota">
  <p>I'm bold and white.</p>
</div>

我意识到这个问题已经很老了,但是,这里什么都没有!

如果目的是添加一个包含多个类的财产的类作为本机解决方案,我建议使用JavaScript/jQuery(jQuery确实不是必需的,但确实很有用)

例如,如果您有从.baseClass1和.baseClass2“继承”的.bumbellaClass,则可以有一些JavaScript在就绪时启动。

$(".umbrellaClass").addClass("baseClass1");
$(".umbrellaClass").addClass("baseClass2");

现在.umbrellaClass的所有元素都将具有.baseClasss的所有财产。请注意,与OOP继承一样,.umbrellaClass可能有也可能没有自己的财产。

这里唯一需要注意的是,是否有动态创建的元素在代码触发时不存在,但也有简单的方法可以解决。

不过,Sucks css没有原生继承。

如果您想要比LESS更强大的文本预处理器,请查看PPWizard:

http://dennisbareis.com/ppwizard.htm

警告:该网站确实很难看,学习曲线很小,但它非常适合通过宏构建CSS和HTML代码。我一直不明白为什么更多的网络程序员不使用它。