我正在使用NextJS/Reaction启动一个简单的测试应用程序.

代码如下:

Board.tsx文件内容:

import './Board.css';

export default function Board() {
    return <div className="board">
    <Row/>
    <Row/>
    <Row/>
  </div>
} /* End of Board */

function Row() {
    return <div className="row">
    <Cell/>
    <Cell/>
    <Cell/>
  </div>
} /* End of Row */

function Cell() {
    return <div className="cell"/>
} /* End of Cell */

和Board.css文件内容:

.cell {
  width: 3rem;
  height: 3rem;
  background-color: rgb(255, 255, 0);
  border-width: 2px;
  border-color: rgb(55, 55, 55);
  margin: 11%;
}

.row {
  display: flex;
  flex-direction: row;
}

.board {
  display: flex;
  flex-direction: column;
}

顶部是app/page.tsx文件:

import Image from 'next/image'
import Board from './components/Board'

export default function Home() {
  return (
    <main className="flex min-h-screen flex-col items-center justify-between p-24">
      X4C APP
      <Board/>
    </main>
  )
}

以下是运行该应用程序时网络浏览器中显示的内容:

enter image description here

最后,我有一个问题.当单元格组件的宽度和高度固定时,为什么我们看不到完美的黄色方块?

我可以通过实验看到,如果我移除这两个块

.row {...}
.board {...}

从Board.css文件中,我得到了完美的正方形.

那么,是什么导致了这两个区块的问题呢?

推荐答案

这是因为您在这里以百分比(margin: 11%;)给Cell的保证金.如果你把它改成像10px/10rem这样的绝对值,你会看到完美的正方形.

由于您的单元格的默认值为flex-shrink,因此如果没有足够的空间,您的单元格将try 缩小.在%中给出边距将会吃掉您的Cell的可用空间,因此Cell将会收缩.

如果您仍想将页边距保持在%,您可以将单元格设置为flex-shrink: 0;,这将防止您的单元格缩小

Css相关问答推荐

如何将bslib::card()中的扩展按钮移到右上方,其中full_screen = TRUE?

如何将另一种自定义位置 colored颜色 添加到三角形CSS中?

是否可以在元素之间对齐渐变?

CSS Select 器仅 Select 具有特定类名称的每行的第一个单元格

CSS 中的 :not(style) ~ :not(style) 是什么?

为什么我的 React slick 轮播响应能力不起作用?

带插值的 Sass 数学函数

更改 20 个实例中的一个组件的样式

做一个像CodeSandbox的console那样的可拖拽的split panel

努力将 CSS 样式应用于 Elm 应用程序

最多 2 行的 Flex 水平滚动

停止 div 推动另一个 div 做出react

如何通过单击
  • 激活 HTML 链接?
  • 如何保持包装的弹性项目与前一行元素的宽度相同?

    如何隐藏锚文本而不隐藏锚?

    如何在渲染之前获取react 组件的大小(高度/宽度)?

    如何隐藏 Chrome 中 HTML5
    元素上默认显示的箭头?

    在移动网络上禁用捏zoom

    通过 JavaScript 更改 CSS 伪元素样式

    将 CSS 类添加到 Html.BeginForm()