【发布时间】:2015-08-31 10:55:58
【问题描述】:
我正在尝试修改我的 HTML、JavaScript 和 CSS3 考试;我对 CSS 选择器和优先级有点困惑。
我有以下 CSS:
table { border: 1px solid black; }
tr:nth-child(odd) { background-color: red; }
tr td:nth-of-type(even) { background-color: blue; }
td { background-color: green; }
我认为最后的优先级,所以我认为表格中的所有单元格都是绿色的。
但是,根据 nth-of-type 选择器,偶数单元格仍然是蓝色的。即使我把它放在顶部并删除绿色的 td 线,蓝色仍然显示在中间,只有奇数单元格显示为红色。
有人能解释一下为什么第 n 个类型似乎优先于其他一切吗?
示例如下:
table { border: 1px solid black; }
tr:nth-child(odd) { background-color: red; }
tr td:nth-of-type(even) { background-color: blue; }
td { background-color: green; }
<table style="width: 100%;">
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
<td>80</td>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
<td>80</td>
</tr>
</table>
【问题讨论】:
-
嗯,我想你有关于特异性是这里的问题的答案。这也是为什么您通常会看到经验丰富的 CSS 开发人员在更通用的规则之后将更具体的规则放在 CSS 的特定部分中的原因。它使您所写内容的预期行为更加清晰。
标签: html css css-selectors css-specificity