Html 为什么';t表>;tr>;td使用子选择器时是否工作?

Html 为什么';t表>;tr>;td使用子选择器时是否工作?,html,css,html-table,css-selectors,Html,Css,Html Table,Css Selectors,我真的不明白为什么下面的选择器按预期工作(即获取td): 但这一条没有: table > tr > td td是tr的后代,后者又是表的后代,但它们也是彼此的子代。因此,我认为>选择器也可以工作 我做了两把小提琴: 儿童: 后代: 为什么选择器不在这里工作?在HTML中,浏览器隐式添加了tbody元素,其中包含tr元素1,因此实际上,tr从来不是表的子元素 因此,您必须这样做: table > tbody > tr > td 当然,如果您自己添加tbody元素,

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

但这一条没有:

table > tr > td
td
tr
的后代,后者又是
的后代,但它们也是彼此的子代。因此,我认为
>
选择器也可以工作

我做了两把小提琴:

  • 儿童:
  • 后代:

  • 为什么
    选择器不在这里工作?

    在HTML中,浏览器隐式添加了
    tbody
    元素,其中包含
    tr
    元素1,因此实际上,
    tr
    从来不是
    表的子元素

    因此,您必须这样做:

    table > tbody > tr > td
    
    当然,如果您自己添加
    tbody
    元素,则使用相同的选择器。说明何时隐式添加
    t正文
    ,否则:

    标记省略 如果
    tbody
    元素中的第一个元素是
    tr
    元素,并且如果该元素前面没有紧接着一个
    tbody thead
    ,或者
    tfoot
    元素的结束标记被省略,则可以省略
    tbody
    元素的开始标记



    1但是,对于被正确用作
    应用程序/XHTML+xml
    的XHTML文档,情况并非如此。

    如果您想比教皇更天主教:)以下是我所做的(因为以上这些都不适合我):

    1) 创建一个css类,将其分配给GridView的属性(例如:


    如果你想说为什么边框宽度(+!重要)和边框样式同时出现,请再次阅读我答案的介绍:)。干杯,祝你好运

    我根本没有意识到这一点。您的解决方案非常有效。@pimvdb:没有多少人是这样的-大多数人刚开始学习时只需了解
    table
    tr
    td
    。直到几年前我才知道
    tbody
    我自己(考虑到我第一次从Neopets中获得HTML…)。请注意,这在XHTML中是可选的,不会添加到DOM中(参考:)。最安全的选择是在选择器中使用
    表tr
    。@马克·托马斯:很高兴知道。是跨浏览器的吗?使用XHTML 1.0 Strict的doctype确实会在Chrome中添加
    tbody
    元素。@MarkThomas-
    table tr
    不带子选择器可能是最安全的选择,但如果有嵌套表,则会导致问题。(我并不推荐嵌套表!-不寒而栗-)IE 6-7完全不支持>:@MadBender:IE7支持标准模式下的
    。@thirtydot:+1回答你的答案。@BoltClock:我在你(再次)非常快速的回答之前开始写评论。我花了一段时间才找到我的答案,最后搜索到了“难以捉摸”:p你可以用a+1表示10:)
    table > tbody > tr > td
    
    <PagerStyle CssClass="pagerNoBorder" /> 
    
    .pagerNoBorder > td > table > tbody > tr > td
        {
            border-width:0px !important;
            border-style:none;
        }