在另一个 nth-child 中使用 nth-child
Using nth-child within another nth-child
<table>
<tr>
<th>heading a</th>
<th>heading b</th>
<th>heading c</th>
</tr>
<tbody>
<tr>
<td>Blue</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
<tr>
<td>White</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
<tr>
<td>Blue</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
</tbody>
</table>
以上是此问题的示例 table。因此,首先给出一些上下文,我想创建一个 table 并冻结第一列。我通过 selecting tr 的第一个 child td 并将位置设置为绝对位置并向我用来更改的 css 的 left.Because 添加填充来完成此操作每隔一行的背景颜色在第一列中不可用。现在我想为 td 的每个 first-child 添加背景颜色,所以我尝试了
td {
&:first-child {
position:absolute;
left:0;
&:nth-child(even){
background-color: blue;
}
}
}
但这仍然是 selecting 所有第一个 td 元素。
我的问题是为什么会出现这样的行为,有没有办法 select 我想要的元素?
我有点困惑,但这是你想要的吗?
td:first-child {
position:absolute;
left:0;
}
tr:nth-child(even){
background-color: blue;
}
<table>
<tr>
<th>heading a</th>
<th>heading b</th>
<th>heading c</th>
</tr>
<tbody>
<tr>
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
<tr>
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
<tr>
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
</tbody>
</table>
我想这就是你想要的吧?
tr:nth-child(odd) td:first-child {
position:absolute;
left:0;
background-color:blue;
}
<table>
<tr>
<th>heading a</th>
<th>heading b</th>
<th>heading c</th>
</tr>
<tbody>
<tr>
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
<tr>
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
<tr>
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
</tbody>
</table>
td:first-child {
position:absolute;
left:0;
}
tr td:not(:first-child){
background-color: blue;
}
<table>
<tr>
<th>heading a</th>
<th>heading b</th>
<th>heading c</th>
</tr>
<tbody>
<tr>
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
<tr>
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
<tr>
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
</tbody>
</table>
<table>
<tr>
<th>heading a</th>
<th>heading b</th>
<th>heading c</th>
</tr>
<tbody>
<tr>
<td>Blue</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
<tr>
<td>White</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
<tr>
<td>Blue</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
</tbody>
</table>
以上是此问题的示例 table。因此,首先给出一些上下文,我想创建一个 table 并冻结第一列。我通过 selecting tr 的第一个 child td 并将位置设置为绝对位置并向我用来更改的 css 的 left.Because 添加填充来完成此操作每隔一行的背景颜色在第一列中不可用。现在我想为 td 的每个 first-child 添加背景颜色,所以我尝试了
td {
&:first-child {
position:absolute;
left:0;
&:nth-child(even){
background-color: blue;
}
}
}
但这仍然是 selecting 所有第一个 td 元素。
我的问题是为什么会出现这样的行为,有没有办法 select 我想要的元素?
我有点困惑,但这是你想要的吗?
td:first-child {
position:absolute;
left:0;
}
tr:nth-child(even){
background-color: blue;
}
<table>
<tr>
<th>heading a</th>
<th>heading b</th>
<th>heading c</th>
</tr>
<tbody>
<tr>
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
<tr>
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
<tr>
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
</tbody>
</table>
我想这就是你想要的吧?
tr:nth-child(odd) td:first-child {
position:absolute;
left:0;
background-color:blue;
}
<table>
<tr>
<th>heading a</th>
<th>heading b</th>
<th>heading c</th>
</tr>
<tbody>
<tr>
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
<tr>
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
<tr>
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
</tbody>
</table>
td:first-child {
position:absolute;
left:0;
}
tr td:not(:first-child){
background-color: blue;
}
<table>
<tr>
<th>heading a</th>
<th>heading b</th>
<th>heading c</th>
</tr>
<tbody>
<tr>
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
<tr>
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
<tr>
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
</tr>
</tbody>
</table>