我真的不明白为什么以下选择器可以按预期工作(即td):
td
table tr td
但这不是:
table > tr > td
该td是的后代tr,这又是的后代table,但他们也彼此的孩子。因此,我认为>选择器也会起作用。
tr
table
>
为什么>选择器在这里不起作用?
在HTML中,浏览器会隐式添加一个tbody元素,以在其中包含tr元素1,因此实际上,tr它绝不是的子元素table。
tbody
因此,您必须改为执行以下操作:
table > tbody > tr > td
当然,如果您tbody自己添加元素,则使用相同的选择器。该规范时说明tbody添加隐含否则:
## 标签遗漏
如果tbody元素内的第一件事tbody是tr元素,并且元素没有紧跟在tbody>thead或tfoot元素的结束标签之前,则元素的开始标签可以省略。
tbody>thead
tfoot
1 这是不是已正确担任XHTML文档的情况下application/xhtml+xml但是,考虑到其XML的根。
application/xhtml+xml