0

我给予 !important 像这样的所有 css 属性值

.someclass{
  color: #f00 !important; 
  background-color: #ff0 !important; 
  margin: 0 !important; 
  padding: 0 !important; 
  width: 100% !important; 
  display: block !important;
}

有什么方法可以只应用一次!重要的是所有值都得到!important.someclass吗?

编辑

假设主 div 是由一些脚本控制的,那么我怎么能一次给所有的 !important 。

4

3 回答 3

6

不,但有更好的方法。使选择器比您要覆盖的选择器更具体。例如,您可以在选择器中指定元素名称以使其更具体:

div.someclass {
  color: #f00; 
  background-color: #ff0; 
  margin: 0;
  padding: 0;
  width: 100%;
  display: block;
}

它不仅更简单,还可以使用更具体的选择器进一步覆盖它。添加!important仅适用于一个级别。

选择器的特殊性基本上是由标识符的数量、类名的数量和它包含的元素名的数量按顺序计算的。例如div.item .cost,具有两个类名和一个元素名的选择器比div span.count具有一个类名和两个元素名的选择器更具体。

于 2013-07-07T10:15:06.110 回答
2

没有办法做到这一点。改写更好的选择器。

不!

于 2013-07-07T10:27:23.560 回答
0

简短的回答:不,没有(据我所知);

长答案:
css 有一个非常好的但有时令人讨厌的层次结构系统

首先,添加!important不是一个建议的举动,它可能会对您的页面速度造成一些损害,并且在您的下一次编辑中可能会遇到一些困难,以找出导致某些内容无法按预期工作的原因。
您可以通过使用其 ID 确定它或将其设置为像这样的后代来使某些东西具有更高的优先级:

.somediv > li > a {
    color: #000;
    background: #fff;
}

它会超越这个:

a.something {
    color: #fff;
    background: #ff0;
}

这将超越两者:

a#something {
    color: #f00;
    background: #0f0;
}

这些将覆盖所有内容,但顺便说一下,第二个更强:

a.something {
    color: #0f0!important;
    background: #00f!important;
}
a#something {
    color: #0f0!important;
    background: #00f!important;
}
于 2013-07-07T10:24:54.060 回答