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/7510850/

相关文章:

css - Angular5 中的伪元素

html - 应用 CSS 网格时 Owl Carousel 2 不工作

html - float 时垂直对齐 div

javascript - 将纸张图标和文本左对齐?

CSS3 :not negation pseudo-class not fully supported by Firefox?

css - 没有绝对定位的伪元素

python - Selenium 打印元素的空innerHTML/innerText

javascript - 如何将第一个元素与精确的内容匹配?

jquery - 淡入图像直至单击另一张图像

CSS 位置和不透明度样式干扰悬停和点击事件