如何使用 CSS "nth-child" select 或 select 自定义行数?

How to select custom number of rows using CSS "nth-child" selector?

基本上我想 select 自定义行并更改它们 background-color,但我似乎找不到任何相关信息。我可以做 oddeven 和其他一些公式,但不能做自定义 selection。我读过 this question and its answers and also This W3Schools article 但似乎没有自定义 selection 的选项。我能找到的只有公式和 odd/even child select ors.

我有以下代码,其中我有 selected even 个 children 但是 这不是我想要的.我想 随机 select 行并更改它们的 background-color。下面代码中的 table 是整个 table,我不需要更多 rows/columns。假设我想随机 select 以下行:

我知道的 selection 的唯一方法是 nth-child select 或者但我似乎无法 select 我上面提到的行。我如何 select 那些行?

<!DOCTYPE html>
<html>
    <head>
        <style>
            table {
                text-align: center;
                border-collapse: collapse;
                width: 30%;
            }
            td, th {
                border: 1px solid grey;
                padding: 5px;
            }
            tr:nth-child(even) {
                background-color: lightgrey;
            }

        </style>
    </head>
    <body>
        <table>
            <tr>
                <th>Date</th>
                <th>Name</th>
                <th>Marks</th>
            </tr>
            <tr>
                <td>20-08-2021</td>
                <td>AAA</td>
                <td>000</td>
            </tr>
            <tr>
                <td>20-08-2021</td>
                <td>BBB</td>
                <td>000</td>
            </tr>
            <tr>
                <td>20-08-2021</td>
                <td>CCC</td>
                <td>000</td>
            </tr>
            <tr>
                <td>20-08-2021</td>
                <td>DDD</td>
                <td>000</td>
            </tr>
            <tr>
                <td>20-08-2021</td>
                <td>EEE</td>
                <td>000</td>
            </tr>
            <tr>
                <td>20-08-2021</td>
                <td>FFF</td>
                <td>000</td>
            </tr>
            <tr>
                <td>20-08-2021</td>
                <td>GGG</td>
                <td>000</td>
            </tr>
        </table>
    </body>
</html>

传入你要选择的元素的索引即可。像“tr:nth-child(3)”会给你索引为 3 的元素。

为此,您必须手动指定元素,如下所示:

<!DOCTYPE html>
<html>
    <head>
        <style>
            table {
                text-align: center;
                border-collapse: collapse;
                width: 30%;
            }
            td, th {
                border: 1px solid grey;
                padding: 5px;
            }
            tr:nth-child(2), 
            tr:nth-child(3), 
            tr:nth-child(5) {
                background-color: lightgrey;
            }

        </style>
    </head>
    <body>
        <table>
            <tr>
                <th>Date</th>
                <th>Name</th>
                <th>Marks</th>
            </tr>
            <tr>
                <td>20-08-2021</td>
                <td>AAA</td>
                <td>000</td>
            </tr>
            <tr>
                <td>20-08-2021</td>
                <td>BBB</td>
                <td>000</td>
            </tr>
            <tr>
                <td>20-08-2021</td>
                <td>CCC</td>
                <td>000</td>
            </tr>
            <tr>
                <td>20-08-2021</td>
                <td>DDD</td>
                <td>000</td>
            </tr>
            <tr>
                <td>20-08-2021</td>
                <td>EEE</td>
                <td>000</td>
            </tr>
            <tr>
                <td>20-08-2021</td>
                <td>FFF</td>
                <td>000</td>
            </tr>
            <tr>
                <td>20-08-2021</td>
                <td>GGG</td>
                <td>000</td>
            </tr>
        </table>
    </body>
</html>
如您所见,包含 AAA、BBB、DDD 的单元格现在具有灰色背景,因为在 CSS 中我们专门选择了第二个、第三个和第五个 child。

你应该 select tr 的第二个 child 并且它会 select AAA, BBB, CCC 参考:https://js-demo.com/index.php?ref=01e519ca937a

我知道已经给出了一些答案和建议,但是如果您仍然想用 CSS 代码解决这个问题,那么我建议您看一下生成 :nth-child 选择器。这是生成您想要的选择器的一种快速简便的方法。

CSS 第 n 个子生成器: https://nthchild.kawalekkodu.pl/en/

备选第 n 个子测试器:https://css-tricks.com/examples/nth-child-tester/

它帮助了我很多次。也可能帮助其他人。