html - CSS 直接后代 ">"运算符不工作(而且它不是 IE6)?

标签 html css css-selectors

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

我使用的 CSS 如下:

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

我的 HTML 看起来像这样:

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

但是没有红色背景出现!如果我从 CSS 中删除“>”字符,它就可以工作了!我已经在 Firefox、IE 8、Chrome 和 Safari 中尝试过,所有浏览器都做同样的事情。

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

最佳答案

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

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

考虑到这一点。


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

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

关于html - CSS 直接后代 ">"运算符不工作(而且它不是 IE6)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42333822/

相关文章:

jquery - 如何将一些 html 文件调用到 html 页面的特定部分?

javascript - Canvas 渲染

html - 使用 BEM 导航栏结构的正确方法

html - 如何在不影响网页上其他列表的情况下设置特定网址的样式

php - 提示在我的网页上下载文件

javascript - 使用 <option> 标签在 CSS 样式之间切换

css - IE8 CSS 选择器 ~(波浪号)仅处理第一个元素

html - CSS Sprite 背景和选择器

css 特殊的 IE7 标签

html - 网站不想以 div 样式加载图像