覆盖CSS样式

前端之家收集整理的这篇文章主要介绍了覆盖CSS样式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在定义一些CSS类,当应用于表时,将生成一些默认样式.

例如,假设我创建了一个名为myTable的类:

.myTable {
  th {
    background-color: #000;
  }

  td {
    background-color: #555;
  }
}

因此,任何具有.myTable类的表都会默认获得th和td上的那些颜色.

我认为如果将另一个类分配给一个单独的td,那么它将覆盖默认样式.

所以,如果我有另一堂课:

.red { background-color: red; }

还有一张桌子:

<table class=myTable>
  <th class="red">Content</th>
  <td>Hello!</td>
</table>

我认为“红色”类会导致标题的背景为红色,而不是黑色.事实并非如此.为了使这个类覆盖原始类,必须在myTable类中定义它,如下所示:

td.red { background-color: red; }

我在这里遗漏了什么,有没有其他方法可以做到这一点,以便我可以有更容易被覆盖的默认样式?

解决方法

想法是使用哪种样式取决于两件事:选择器的具体程度,规则的位置(最新规则获胜).例:
p {
  background-color: red;
}

p {
  background-color: blue;
}

段落将是蓝色的.另一个例子:

body p {
  background-color: red;
}

p {
  background-color: blue;
}

段落将是红色的,因为“body p”更具体.

编辑:也尽量避免使用!important.它受到支持,但副作用是你永远不能覆盖它(永远).因此,只有在你无法知道如何构建足够具体规则的极端情况下才使用它(例如:通用print.css).

原文链接:https://www.f2er.com/css/215527.html

猜你在找的CSS相关文章