在我的样式表中,.four-across li
在第8806行定义width: 174px;
。在第9603行的规则下方,.no-search-results
定义width: auto;
。但是,174px规则覆盖了.no-search-results
的元素。为什么会这样?
答案 0 :(得分:11)
你应该阅读CSS特异性。
.four-across li
比.no-search-results
更具体,因此它具有更高的重要性级别。
通过计算css的各种组成部分来计算特异性 并以(a,b,c,d)的形式表达它们。这将更加清晰 例如,但首先是组件。
- 元素,伪元素:d = 1 - (0,0,0,1)
- 类,伪类,属性:c = 1 - (0,0,1,0)
- Id:b = 1 - (0,1,0,0)
- 内联样式:a = 1 - (1,0,0,0)
Understanding Style Precedence in CSS: Specificity, Inheritance, and the Cascade
文档顺序仅在给定的特异性完全相同时才有意义。在你的例子中,第一个选择器是(0,0,1,1),第二个是(0,0,1,0),所以第一个选择器会覆盖第二个选择器,无论它们如何在CSS文档中排序。
答案 1 :(得分:2)
读:
在这种情况下,因为类和元素类型比类更具体,并且它比更受青睐>顺序
答案 2 :(得分:1)
有两个原因: