【问题标题】:Sudoku Grid Styling-Borders [CSS-Grid]数独网格样式-边框 [CSS-Grid]
【发布时间】:2020-07-28 15:28:15
【问题描述】:

我创建了一个数独游戏,需要一些 CSS 帮助来设置它的样式。

想用 CSS 实现的是这样的......

目前拥有的是这个……

这是我的 CSS:

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.header {
  text-align: center;
}
.container {
  box-sizing: content-box;
  border: 3px solid black;
  border-right: 2px solid black;
  margin: auto;
  width: 540px;
  height: 540px;
  display: grid;
  grid-template: repeat(9, 60px) / repeat(9, 60px);
  background-color: blanchedalmond;
}
.element {
  width: 60px;
  height: 60px;
  background-color: grey;
  border: 1px solid black;
}
.element:nth-child(3n) {
  border-right: 2px solid black;
}

我正在使用 react 来构建它。所以我使用 Array.map() 动态生成了 81 个元素(每个元素都有一个元素类)。 所以有 81 个元素基本上看起来像这样......

<div class="container">
<div class="element" data-x="0" data-y="0" data-section="0"></div>
<div class="element" data-x="1" data-y="0" data-section="0"></div>
<div class="element" data-x="2" data-y="0" data-section="0"></div>
.
.
.
<div class="element" data-x="7" data-y="8" data-section="8"></div>
<div class="element" data-x="8" data-y="8" data-section="8"></div>
</div>

所以我所要求的只是有两条相等的水平边界线,将整个板(与容器类)分成 3 个相等的部分,从而产生 9 个相等的九分之一(将已经存在的垂直边界线放入考虑)。

很明显,我可以看到我需要元素编号(容器子编号)[ (19,20,...,27) && (46,47,...,54) ] 的底部边框。

我可以在我的 javascript 中做一些事情,但我正在寻找一个纯 css 解决方案。我见过人们推荐使用表格和 tr td 之类的东西,但我正在走这条路。 有什么帮助吗?

【问题讨论】:

    标签: css reactjs border css-grid sudoku


    【解决方案1】:

    试试这个(y=5 和 y=8 相同):

    .element[data-y="2"] {
    border-bottom: 2px solid black;
    }
    

    【讨论】:

    • 非常感谢您成为救世主。您对使用 data-* 选择器的想法真是太好了。实际的解决方案是添加 .element[data-y="2"], .element[data-y="5"] { border-bottom: 2px solid black; } 到我的 CSS。完美运行。太棒了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 2014-07-06
    • 1970-01-01
    • 2012-09-01
    • 2020-10-04
    • 1970-01-01
    相关资源
    最近更新 更多