Html CSS直接后代“>”运算符不工作(并且不是IE6)?

Html CSS直接后代“>”运算符不工作(并且不是IE6)?,html,css,css-selectors,Html,Css,Css Selectors,我正在尝试做一些非常简单的事情——选择标记,这些标记是标记的直接后代 我使用的CSS如下所示: table.data > tr { background-color: red; } 我的HTML如下所示: <table class="data"> <tr> ... </tr> </table> 但是没有红色的背景!如果我从CSS中删除>字符,它会工作!我曾在Firefox、IE 8、Chrome和Safar

我正在尝试做一些非常简单的事情——选择标记,这些标记是标记的直接后代

我使用的CSS如下所示:

table.data > tr { background-color: red; }
我的HTML如下所示:

<table class="data">
    <tr>
        ...
    </tr>
</table>
但是没有红色的背景!如果我从CSS中删除>字符,它会工作!我曾在Firefox、IE 8、Chrome和Safari中尝试过这一点,所有浏览器都做了完全相同的事情

希望有人能在这么多令人沮丧的小时后帮助我!我知道我在做一些非常愚蠢的事情,但我不知道这是什么。

大多数T1浏览器会自动将tbody元素插入表中,因此css应该是:

table.data > tbody > tr { background-color: red; }
要解释这一点

我认为所有的浏览器都会这样做,但我没有能力,也没有时间去验证这个假设。如果您担心某些用户的浏览器不能做到这一点,您可以在css中提供两个选择器:

table.data > tr,
table.data > tbody > tr { background-color: red; }

@琼恩,嘿。我也在想同样的事情…:当TF2游戏出现时,PI就在中间,所以我的近距离投票可能来得太迟了。但你的答案基本正确,所以请投赞成票@为什么。谢谢你!:很明显,我使用了错误的搜索词,当我查找重复项时,给出的问题本身就很困难。哦…谢谢你的回答。我试过了,但也没用。当然,我在浏览器中查看了HTML代码,没有标记。伙计,这太奇怪了…浏览器会将数据添加到DOM中,而不是HTML源代码中。这就是为什么您看到HTML源代码根本没有被修改——它确实没有被修改。可能的重复也许您不需要>,因为tr取决于表标记和表语法的自然直接后代。。。?text@Chris22这仅在内部没有嵌套表时有效。