1

我知道在 CSS 中,您设置的样式会覆盖先前加载的样式表中该样式的设置。

但是有没有办法删除在以前加载的样式表中设置的样式?例如,假设我在我的项目中包含bootstrap,它具有这种风格:

.tab-content {
    overflow: auto;
}

而且这种风格会造成一些不良影响,所以我想摆脱它。我当然可以在我自己的样式表中将它设置为某个理想的值,但我宁愿它只是就好像那种样式从未存在过一样。

4

2 回答 2

2

没有办法删除在以前的样式表(或实际上在同一个样式表中)设置的 CSS 规则或属性,但您可以用自己的样式覆盖它们。

这些必须出现在原始规则之后(如果选择器具有相同的特异性 - 请参阅CSS 特异性:您应该知道的事情)或具有比前面规则更高的特异性。

例如-

.tab-content {
    overflow: auto;
}
...

.tab-content {
    overflow: inherit;
}

会工作,但是-

#foo.tab-content {
    overflow: auto;
}
...

.tab-content {
    overflow: inherit;
}

不会被覆盖,原始的 auto 值将保持不变。如果您想了解特异性,那么在阅读上述文章后,Keegan Street的特异性计算器非常值得尝试。

如果您可以删除原始规则并且在其他地方不需要它,那么最好摆脱它而不是简单地添加新的替换值,但假设它在网站的其他地方或第三方内容的一部分中使用(如bootstrap),您不能或不想更改,那么您可以将其重置为默认值或所需值。在“溢出”的情况下,默认值为“可见”(请参阅​​ https://developer.mozilla.org/en-US/docs/CSS/overflow)。如果仅在您的内容中需要该规则,那么您可能希望将其包含在选择器中以避免影响页面/站点的其他部分-

#your-container .tab-content {
   overflow: visible;
}
于 2013-03-31T16:44:11.027 回答
0

我不太了解 CSS,但是当我写这个问题时,我想到了解决方案。通过inherit在我的后续 CSS 文件中简单地设置样式,我可以模拟默认行为,以便认为样式从未设置过。

.tab-content {
    overflow: inherit;
}
于 2013-03-28T14:57:52.563 回答