应用!对所有属性的值一次重要

时间:2013-07-07 10:12:44

标签: html css

我正在给予所有css属性的重要性,比如这个

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

是否有任何方法只应用一次!重要的是所有值都得到!important的{​​{1}}?

修改

假设主div由一些脚本控制,那么我怎样才能给所有人一次性重要。

3 个答案:

答案 0 :(得分:6)

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

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

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

选择器的specificity基本上按照该顺序由标识符的数量,类名的数量和它包含的元素名称的数量来计算。例如,像div.item .cost这样的选择器具有两个类名和一个元素名,比具有一个类名和两个元素名的div span.count选择器更具体。

答案 1 :(得分:2)

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

NO!

答案 2 :(得分: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;
}