我可以在CSS中从一个类继承到另一个类

时间:2017-07-07 15:21:01

标签: jquery html css inheritance

我正在做的是为不同的元素创建多个类,一个是悬停类,另一个是非悬停版本。这两个类之间只有一两件事发生变化,我不想复制和粘贴整个班级,只改变一行。

所以我想做的就是说

.hoverOff {
background-color: green;
font-size: 14pt;
border: 2px;
width: 150px;
}

然后我将鼠标悬停在课堂上

.hoverOn {
background-color: red;
}

我想继承hoverOff类中的所有其他内容,只更改背景颜色。我可以像这样继承CSS并覆盖新类中的继承样式吗?就目前而言,我只是复制整个班级,重命名并改变一行。对我来说似乎很冗余和过时。

4 个答案:

答案 0 :(得分:4)

你可以做你在问题中描述的内容,但是使用CSS来处理使用array(1) { [0]=> array(1) { ["_num"]=> string(1) "0" } } array(1) { [0]=> array(1) { ["_num"]=> string(1) "1" } } 伪选择器的悬停状态要简单得多。试试这个:

:hover
.foo {
  background-color: green;
  font-size: 14pt;
  border: 2px;
  width: 150px;
}

.foo:hover {
  background-color: red;
}

答案 1 :(得分:1)

在纯CSS中,只需在第一个选择器中使用这两个类:

.hoverOff,
.hoverOn {
  font-size: 14pt;
  border: 2px;
  width: 150px;
}
.hoverOff {
  background-color: green;
}
.hoverOn {
  background-color: red;
}

无论如何,除非您正在使用某些JS高级魔法,否则我建议您使用:hover中所述的_run = False def do_work(): global _run while _run: # Do something @app.task def start(): global _run _run = True do_work() @app.task def stop(): global _run _run = False

答案 2 :(得分:1)

复制整个班级应该是最后一个选项,如果是一个选项。

我会做的是这样的事情:

.element {
    background-color: green;
    font-size: 14pt;
    border: 2px;
    width: 150px;
}

.element.on {
    background-color: red;
}

.element:hover可能更有意义;我的答案更多的是如何分享CSS样式。

或者,您可以将相同的样式分配给多个类,如下所示:

.element.on, .element.off {
    background-color: green;
    font-size: 14pt;
    border: 2px;
    width: 150px;
}

.element.on {
    background-color: red;
}

最后,CSS预编译器语言在Less中具有Mixins等功能,您可以在其中按名称将类分配给另一个类。

答案 3 :(得分:1)

如果您想从字面意义上考虑继承,请查看CSS variables。虽然我不会在生产代码中使用它,但这是一个有趣的功能,它允许一些很酷的东西:



.foo {
  --bg-color: green;
  background-color: var(--bg-color);
  font-size: 14pt;
  border: 2px;
  width: 150px;
}

.foo:hover {
  --bg-color: red;
}

<div class="foo">
  Hover over me
</div>
&#13;
&#13;
&#13;