You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何对表格使用:nth-child(1)时样式未仅作用于首个单元格?

问题:表格中使用:nth-child(1)选择器未仅作用于首个单元格的原因

尝试用CSS选择器.header:nth-child(1)为class为header的<tr>设置浅绿色背景,结果整行单元格都变成了浅绿色,而非仅首个单元格,相关代码及效果如下:

代码示例

<!DOCTYPE html>
<html>
<head>
<style> 

.header:nth-child(1) {
  background: lightgreen;
}

</style>
</head>
<body>

 <table>
   <tr class="header">
     <th>Company</th>
     <th>Contact</th>
     <th>Country</th>
   </tr>
  <tr>
    <td>Alfreds Futterkiste</td>
    <td>Maria Anders</td>
    <td>Germany</td>
  </tr>
  <tr>
    <td>Centro comercial Moctezuma</td>
    <td>Francisco Chang</td>
    <td>Mexico</td>
  </tr>
</table> 

</body>
</html>

效果截图

样式效果截图

原因及解决办法

问题根源

你误解了选择器的作用对象:

  • .header:nth-child(1)选中的是父元素的第一个子元素且带有header类的<tr>行元素,而非该行内的第一个单元格。
  • 当给<tr>设置背景色时,这个样式会默认应用到它包含的所有<th>单元格上,因此整行都变成了浅绿色。

修正方案

如果要仅给header行的首个单元格设置背景,需要把选择器指向该行下的第一个<th>:

.header th:nth-child(1) {
  background: lightgreen;
}

内容的提问来源于stack exchange,提问作者geotheory

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 12:53:16