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

发布于 2024-12-06 10:02:18 字数 432 浏览 1 评论 0原文

我正在尝试做一些非常简单的事情 - 选择作为标签的直接后代的标签。

我使用的 CSS 如下:

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

我的 HTML 看起来像这样:

<table class="data">
    <tr>
        ...
    </tr>
</table>

但没有红色背景即将出现!如果我删除“>”来自 CSS 的字符,它有效!我已经在 Firefox、IE 8、Chrome 和 Safari 中尝试过此操作,所有浏览器都执行完全相同的操作。

希望有人能在经历了这么多令人沮丧的时间后帮助我!我知道我在做一件极其愚蠢的事情,但我不知道那是什么。

I am trying to do something very simple - select the tags which are direct descendants of a tag.

The CSS I am using is as follows:

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

My HTML looks like this:

<table class="data">
    <tr>
        ...
    </tr>
</table>

But no red background is forthcoming! If I remove the ">" character from the CSS, it works! I have tried this in Firefox, IE 8, Chrome and Safari, and all the browsers do exactly the same thing.

Hopefully someone can help me after so many frustrating hours! I know I am doing something extremely stupid, but I can't figure out what it is.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

沙与沫 2024-12-13 10:02:18

大多数1浏览器会自动将tbody元素插入到table中,因此CSS应该是:

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

来解释这一点。


1认为所有浏览器都会这样做,但我没有能力或时间来检查该假设。如果您担心某些用户的浏览器不会执行此操作,您可以在 css 中提供这两个选择器:

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

Most1 browsers automatically insert a tbody element into a table, so the css should be:

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

to account for that.


1 I think that all browsers do this, but I don't have the capacity, or time, to check that assumption. If you're concerned that there might be some users with a browser that doesn't do this, you could offer both selectors in the css:

table.data > tr,
table.data > tbody > tr { background-color: red; }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文