在我的样式表中,在第 8806 行.four-across li
定义。width: 174px;
在第 9603 行的规则下方,.no-search-results
定义width: auto;
. 但是,174px 规则会覆盖带有.no-search-results
. 为什么会这样?
问问题
4559 次
3 回答
17
您应该阅读有关 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)
仅当给定的特异性完全相同时,文档顺序才重要。在您的示例中,第一个选择器是 (0,0,1,1),第二个是 (0,0,1,0),因此第一个选择器会覆盖第二个选择器,无论它们在 CSS 文档中如何排序。
于 2013-08-27T17:17:55.297 回答
2
于 2013-08-27T17:17:53.250 回答
1
两个原因:
- 最后扫描的规则优先于之前扫描的规则,其他条件相同。
- 规则越具体(两个说明符而不是一个说明符),优先级就越高。
于 2013-08-27T17:19:12.923 回答