我正在给予所有css属性的重要性,比如这个
.someclass{
color: #f00 !important;
background-color: #ff0 !important;
margin: 0 !important;
padding: 0 !important;
width: 100% !important;
display: block !important;
}
是否有任何方法只应用一次!重要的是所有值都得到!important
的{{1}}?
修改
假设主div由一些脚本控制,那么我怎样才能给所有人一次性重要。
答案 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)
没有办法做到这一点。改为编写更好的选择器。
答案 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;
}