我有一个带有输入表的jsbin,使用bootstrap。令我困惑的是带有
的风格input.someClass {
background-color: blue;
}
按预期应用,但
.anotherClass {
background-color: green;
}
不适用于我的输入元素。这是什么原因?如需参考,请查看http://jsbin.com/enaris/3/edit
答案 0 :(得分:5)
这个原因是什么?
这只是specificity的问题 - 第一个选择器有type selector附加到类名,而第二个选择器只有一个类。因此,第二个选择器更具体,优先。
这是从我的另一个answer迁移出来的,这可能有所帮助:
您可以将特异性视为四个数字,从(0,0,0,0)开始:
+
和~
等组合词也没有特异性#test
)计数为上述集合中的第二个数字(0,1,0,0)<p>
&amp; ::after
)取代
第四个数字,并且是最不具体的基于以上所述,第一个选择器具有(0,0,1,1)的特定,而第二选择器具有(0,0,1,0)
答案 1 :(得分:2)
CSS规则从最不具体到最具体的应用。
你有:
Least Specific More Specific Most specific
.anotherClass input[type=...] (bootstrap) input.someClass
因此,在您的示例中,b-cell
比引导样式更具体,a-cell
更少。
您可以强制a-cell
优先使用!important
(但谨慎使用!important
,因为它可能会变成调试地狱):
.a-cell {
background-color: green !important;