一尘不染

使用子选择器时,为什么table> tr> td不起作用?

html

我真的不明白为什么以下选择器可以按预期工作(即td):

table tr td

但这不是:

table > tr > td

td是的后代tr,这又是的后代table,但他们也彼此的孩子。因此,我认为>选择器也会起作用。

为什么>选择器在这里不起作用?


阅读 521

收藏
2020-05-10

共1个答案

一尘不染

在HTML中,浏览器会隐式添加一个tbody元素,以在其中包含tr元素1,因此实际上,tr它绝不是的子元素table

因此,您必须改为执行以下操作:

table > tbody > tr > td

当然,如果您tbody自己添加元素,则使用相同的选择器。该规范时说明tbody添加隐含否则:

## 标签遗漏

如果tbody元素内的第一件事tbodytr元素,并且元素没有紧跟在tbody>theadtfoot元素的结束标签之前,则元素的开始标签可以省略。


1
这是不是已正确担任XHTML文档的情况下application/xhtml+xml但是,考虑到其XML的根。

2020-05-10