- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须使用 html
和 css
(使用 grid
)创建一个棋盘。我创建了电路板以及顶部和底部。现在我卡在中间部分了。我创建了每个字段的大小 (80px
x 80px
) 我的问题是单个 field
类在我的网格底部溢出 (棋盘
)。我该如何解决所有 div
“字段”都留在我创建的网格中的问题?
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
box-sizing: border-box;
margin: 5%;
background-color: lightgreen;
display: flex;
justify-content: center;
}
.chess-board {
width: 640px;
height: 720px;
background-color: white;
display: grid;
grid-template-columns: repeat(8, 80px);
grid-template-rows: 40px repeat(8, 80px) 40px;
grid-gap: 0;
}
.upper-numbers {
display: grid;
grid-column: 1/9;
grid-row: 1/1;
grid-auto-flow: column;
background-color: moccasin;
}
.lower-numbers {
display: grid;
grid-column: 1/9;
grid-row: 10/10;
grid-auto-flow: column;
background-color: moccasin;
}
.numbers {
display: grid;
grid-auto-flow: column;
text-align: center;
align-self: center;
}
/*.main-field {
display: grid;
grid-column: 1/9;
grid-row: 2/10;
background-color: white ;
}*/
.field {
height: 80px;
width: 80px;
}
.field:nth-child(-2n+8) {
background-color: black;
}
<main class="chess-board">
<section class="upper-numbers">
<div class="numbers">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
</div>
</section>
<section class="main-field">
<div class="field">a</div>
<div class="field">b</div>
<div class="field">c</div>
<div class="field">d</div>
<div class="field">e</div>
<div class="field">f</div>
<div class="field">g</div>
<div class="field">h</div>
<div class="field">i</div>
<div class="field">j</div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field">q</div>
<div class="field">r</div>
<div class="field">s</div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
</section>
<section class="lower-numbers">
<div class="numbers">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
</div>
</section>
</main>
最佳答案
您遇到的主要问题是网格属性不会继承到容器的子项之外。您正在尝试将网格属性应用于曾孙,但这是行不通的。
在您的代码中,您有创建网格容器的规则:
.chess-board {
display: grid;
grid-template-columns: repeat(8,80px);
grid-template-rows: 40px repeat(8,80px) 40px;
}
但这是您的 HTML:
<main class="chess-board">
<section class="upper-numbers">
<div class="numbers">
<div>1</div>
...
</div>
</section>
<section class="main-field">
<div class="field">a</div>
...
</section>
<section class="lower-numbers">
<div class="numbers">
<div>1</div>
...
</div>
</section>
</main>
以.chess-board
为容器,只有.upper-numbers
、.main-field
和.lower-数字
是网格项,可以接受网格命令。
嵌套在网格项中的所有元素不参与网格布局。它们是标准的 block 布局元素。因此他们会忽略您的 grid-template-columns
和 grid-template-rows
命令。
我的建议是,如果您想使用单个网格容器,并且在浏览器支持网格“子网格”功能之前,我的建议是“展平”HTML 结构。
这是我结合使用网格和 flex 布局构建的一个简单示例。
.chess-board {
margin: auto;
width: 640px;
height: 720px;
background-color: white;
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 40px 1fr 40px;
grid-gap: 0;
}
.upper-numbers,
.lower-numbers {
display: flex;
background-color: moccasin;
}
.upper-numbers>div,
.lower-numbers>div {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
}
.main-field {
display: flex;
flex-direction: column;
flex-wrap: wrap;
height: 640px;
}
.field {
height: 80px;
width: 80px;
display: flex;
align-items: center;
justify-content: center;
}
.field:nth-child(-2n+8) {
background-color: black;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
margin: 5%;
background-color: lightgreen;
}
<main class="chess-board">
<section class="upper-numbers">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
</section>
<section class="main-field">
<div class="field">a</div>
<div class="field">b</div>
<div class="field">c</div>
<div class="field">d</div>
<div class="field">e</div>
<div class="field">f</div>
<div class="field">g</div>
<div class="field">h</div>
<div class="field">i</div>
<div class="field">j</div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field">q</div>
<div class="field">r</div>
<div class="field">s</div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
<div class="field"></div>
</section>
<section class="lower-numbers">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
</section>
</main>
更多详情:
关于html - 使用 CSS Grid 创建棋盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60126276/
我有一个棋盘格,并将其连接到 JPanel: import javax.swing.*; import java.awt.Graphics; import java.awt.Color; public
我看不出有什么问题,我正在尝试将 gameBoard 数组(这不是数组吗?- 请参阅构造函数)传递到 findPiece 方法中,但它说了不是一个数组,我应该在这里传递什么来获得未更新的板?抱歉,我是
所以我想检查输入的位置在棋盘中是否有效, //returns true if the position is in the range of A1-H8 private boolean isValid
将单一职责原则应用于棋盘应用程序,Piece 接口(interface)/类应该负责什么? 我确信它需要知道它的颜色、类型和有效 Action 。但是它是否也应该知道它在棋盘中的位置(x/y)?或者,
我需要使用 J 打印棋盘,给定奇数的函数需要创建一个 NxN 矩阵并在每个其他框中放置一个“X”。我已经制作了矩阵,但我无法弄清楚其他盒子部分。 到目前为止我所拥有的 N =: 3 checker =
我目前有一个一维棋盘坐标数组(例如 ["B1","D1","F1","H1","E8"] 用于棋盘游戏。我已将数组“位置”初始化为是上面的值,但这可以是游戏任何时候的任何值。该数组的长度根据用户给定的
我想使用canvas和通过覆盖方法onDraw在android studio中动态绘制一个8×8的棋盘,我几乎已经成功了,但我遇到了一个非常烦人的问题。 我已经制作了一个自定义 View ,我的目标是
所以我开始了一个 TicTacToe 项目,而且我是一个初学者,所以我不知道如何做很多事情。这是半个小时编码的结果。 我似乎在调试 Player2 不轮流的原因时遇到问题。 所以它要求添加更多细节,然
我正在制作棋盘游戏,但无法 move 它们。棋子会根据骰子的结果 move 。下面是我尝试做的,但它不起作用。(来自 button[].addActionListener(new ActionList
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是
谁能告诉我如何使用 JavaScript、表格标签或 生成棋盘 (8x8)? 到目前为止,我得到了以下内容: div { border:1px solid black; width:20px;
大家好,我最近开始做一个国际象棋应用程序,除了 GUI 之外,我已经设置好了所有的东西。出于某种原因,我无法让电路板显示瓷砖,我也不知道为什么。 (推测)我认为我的问题与我对 DOM 的使用有关。对我
我试图创建一个带有表格的棋盘 (HTML/CSS)。我在表格边框方面遇到了麻烦。我只希望电路板有边框,排除行号和列字母。 我该怎么做? table { border-bottom: solid 2
我是 java 和 android 的新手,但我正在寻找一个可以走上正轨的好教程。我想编写一个函数,用于在我的应用程序当前 View 的背景中绘制/重绘白底黑棋盘图案。我不想使用实际图像,因为我希望能
我正在尝试使用 GUI 的 NetBeans IDE 在 Java 中制作国际象棋游戏,但我无法使棋子停留在棋盘上方,当我尝试时,棋盘就会被推开。我对这两个图像都使用了标签。如何让棋子停留在棋盘上方而
我试图为 Tic Tac Toe 游戏编写代码。我编写了以下代码来显示游戏板,但出现了问题,并且没有显示所需的输出。你能帮我找出错误在哪里吗? 这里: 0代表空白, 1代表X和 2代表O。 publi
我的任务是通过 paintComponent 方法创建一个 10x10 可调整大小的棋盘。 我的问题是第一行正确,但下一行不显示,我根本不知道我的错误在哪里 GrafikPanel 类: import
我在这里尝试使用 javascript 棋盘:http://chessboardjs.com/ .不幸的是,我不知道 javascript 或 CSS,并且对 HTML 很生疏,所以我不理解文档,即使
我正在尝试在棋盘(见附图)和基于 cordova 的 Android 国际象棋游戏(lichess)之间传输数据。两个设备都将通过 USB 数据线连接。 android 的 cordova 应用程序是
我使用以下 CSS 代码创建了一个棋盘图案: .testcheckerboard{ width: 200px; height: 100px; background-color: white
我是一名优秀的程序员,十分优秀!