html - CSS 选择行组元素但不选择非行组元素

标签 html css

我有一些这样的表:

<tr>
    <th scope="rowgroup" rowspan="2">Rowgroup</th>
    <th scope="row">Row 1</th>
    <td>A</td>
</tr>
<tr>
    <th scope="row">Row 2</th>
    <td>B</td>
</tr>

我希望通用 CSS 规则在行组的一部分时捕获所有 scope="row"元素,但在它们不属于行组时则不捕获,如下所示:

<tr>
    <th scope="row">Row 1</th>
    <td>A</td>
</tr>
<tr>
    <th scope="row">Row 2</th>
    <td>B</td>
</tr>

我的目标是让我的所有 TH 都具有一种颜色,除非是行组的一部分。我试过了,但它只捕捉到第一个:

th[scope="rowgroup"] th { color: blue; }

我不关心浏览器兼容性,使用很多规则也没问题,我只是想尽可能避免使用 id 或类选择器或 javascript。

最佳答案

恐怕您无法仅使用 CSS 做到这一点。

问题是 CSS 不支持“向上”,只支持“向下”。在您的第一个示例中,不可能到达 th。位于第二个tr , 他们是 th scope="rowgroup" 的“堂兄弟”元素,所以你必须先上升然后下降。

用Javascript/jQuery很容易解决,或者你可以在tr上添加一个类包含 th scope="rowgroup"在您的 HTML 中。

关于html - CSS 选择行组元素但不选择非行组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21716381/

相关文章:

javascript - 如何防止页面逐渐显示?

html - 如何在 CSS 注释中使用 LESS 变量?

html - 表 colspan 修复

css - 获得具有相同色调但另一种颜色的颜色?

html - 如何使 "Fixed"元素可滚动

css - 周期 2 : is it possible to place the caption above the image?

html - 使多个居中图像响应

html - 悬停时一张图片到另一张图片(不透明)

javascript - 如何检查在一系列随机按钮中单击了哪个按钮?

html - 跨页面包装器的 100% 宽度导航