”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 为什么我的子选择器无法设置表格单元格的样式?

为什么我的子选择器无法设置表格单元格的样式?

发布于2024-12-21
浏览:359

Why Does My Child Selector Fail to Style Table Cells?

表结构中的子选择器与后代选择器

在 HTML 文档中选择元素时,开发者经常使用子选择器 (>) 来定位指示子级和后代选择器以任何嵌套元素为目标。但是,在某些情况下,子选择器似乎会意外失败。

考虑以下示例:

table tr td {
  background-color: red;
}

table > tr > td {
  background-color: blue;
}

第一条规则成功选择

元素内 元素内的所有 的子元素,它又是
元素。然而,使用子选择器 (>) 的第二条规则无法对任何 元素进行样式设置。

对此行为感到困惑,开发人员可能会假设,因为

的子级,因此应该应用子选择器。

HTML 中隐式包含

元素会产生混乱。默认情况下,浏览器插入 元素来包含 元素。结果实际的元素结构变成:

在此修改后的结构中,

不再是 的直接子级,而是 的子级,而 本身又是
的子级。因此,> 选择器无法定位 的直接子级。

要纠正此问题,开发人员必须显式选择 tbody 元素:

table > tbody > tr > td {
  background-color: blue;
}

这可确保子选择器针对修改后的结构中的正确元素。此外,如果 tbody 元素显式添加到 HTML 文档中,则可以使用相同的选择器。

,因为它不是
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3