css - 在 React 的嵌套 map 上使用 CSS nth-child

标签 css reactjs

我使用表格和二维数组构建了一个网格,如下所示:

        <table className = 'table'>
            <tbody>
              {this.state.board.map((x,i)=>{
                return(
                  <tr key = {i} className = {"row"}>
                    {x.map((y,j) => {
                      return (
                        <td key ={j} className = {"col"}>

                        </td>
                      )
                    })}
                  </tr>
                )
              })}
          </tbody>
        </table> 

这会在屏幕上打印一个漂亮的 8x8 网格。我试图找出一种方法来使用第 nth-child css 选择器为所有奇数方 block 着色一种颜色,但到目前为止我还没有得到任何工作。我试过 table tr td: nth-child(odd){background: blue;} 也没有用。这是我实际上可以用我创建网格的方式做的事情吗?

最佳答案

我假设您需要一个 checkerboard 模式。

在那种情况下你需要两个选择器

table tr:nth-child(odd) td:nth-child(odd),
table tr:nth-child(even) td:nth-child(even) {
  background: pink;
}

table {
  margin: 1em auto;
}

td {
  border: 1px solid black;
  padding: 1em;
}

table tr:nth-child(odd) td:nth-child(odd),
table tr:nth-child(even) td:nth-child(even) {
  background: pink;
}
<table>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
</table>

或者,如果您实际上只想要“奇数”单元格,那么一个选择器就可以工作

table tr td:nth-child(odd) {
  background: pink;
}

table {
  margin: 1em auto;
}

td {
  border: 1px solid black;
  padding: 1em;
}

table tr td:nth-child(odd) {
  background: pink;
}
<table>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
</table>

关于css - 在 React 的嵌套 map 上使用 CSS nth-child,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51054295/

相关文章:

javascript - 如何在 url 中制作一盒 nxn?

html - 为什么 col break 元素占用 flexbox 中的空间

html - 响应居中 HTML5

rest - 如何从 fetch 向我的 go API 发出 PUT 请求?

javascript - React Hooks 未正确更新数组

javascript - 使用 jQuery 更改元素的顶部位置

html - div 的高度不会随着内容的增加而增加

javascript - Dispatch 和 setState 不能一起工作,而是独立工作

git - 我应该在哪个分支中构建 docker 镜像?

javascript - React - 迭代数组中的键值对