如何自动获取css网格中的所有可用空间

如何自动获取css网格中的所有可用空间,css,css-grid,Css,Css Grid,我很难理解CSS网格行是如何工作的。为什么列从左到右展开,而行不展开 .grid{ 位置:绝对位置; 高度:50vh; 宽度:30vw; 边框:1px纯黑; 顶部:计算(50%-30vh); 左:计算值(50%-15vw); } .钥匙{ 显示:网格; 网格模板列:重复(3,1fr); 网格模板行:重复(4,1fr); } .按键>按钮{ 字体大小:30px; 文本对齐:居中; 线高:30px; 边框:1px纯黑; } 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.

我很难理解CSS网格行是如何工作的。为什么列从左到右展开,而行不展开

.grid{
位置:绝对位置;
高度:50vh;
宽度:30vw;
边框:1px纯黑;
顶部:计算(50%-30vh);
左:计算值(50%-15vw);
}
.钥匙{
显示:网格;
网格模板列:重复(3,1fr);
网格模板行:重复(4,1fr);
}
.按键>按钮{
字体大小:30px;
文本对齐:居中;
线高:30px;
边框:1px纯黑;
}

1.
1.
1.
1.
1.
1.
1.
1.
1.
1.
1.
1.
您的
.grid
中的
.key
未设置为展开整个网格
元素

您需要确保grid div中的所有div都设置为填充整个容器,以便子容器也这样做

height:100%
添加到密钥容器将解决此问题

您需要添加以下代码

.keys {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(4, 1fr);
  height: 100%;
}
或者,您可以一起去掉网格中的样式,并将其中的所有CSS移动到keys元素。这样,就不需要像这样设置高度

.keys {
  display: grid;
  position: absolute;
  height: 50vh;
  width: 30vw;
  border: 1px solid black;
  top: calc(50% - 30vh);
  left: calc(50% - 15vw);
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(4, 1fr);
}
当使用
fr
作为维度时,它将始终填充父容器的一小部分<代码>重复(4,1fr)
会将元素的尺寸设置为父容器的25%,无论是宽度还是高度。

您的
。键位于
内。网格
未设置为扩展整个网格
元素

您需要确保grid div中的所有div都设置为填充整个容器,以便子容器也这样做

height:100%
添加到密钥容器将解决此问题

您需要添加以下代码

.keys {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(4, 1fr);
  height: 100%;
}
或者,您可以一起去掉网格中的样式,并将其中的所有CSS移动到keys元素。这样,就不需要像这样设置高度

.keys {
  display: grid;
  position: absolute;
  height: 50vh;
  width: 30vw;
  border: 1px solid black;
  top: calc(50% - 30vh);
  left: calc(50% - 15vw);
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(4, 1fr);
}

当使用
fr
作为维度时,它将始终填充父容器的一小部分
repeat(4,1fr)
会将元素的尺寸设置为父容器的25%,无论是宽度还是高度。

我想如果你从CSS中删除这些,你会发现
高度:50vh;宽度:30vw网格的宽度和高度将根据元素的大小(数量)进行调整。使用块级元素,全宽是自动的。全高不是。我想你会发现,如果你把这些从你的CSS
height:50vh;宽度:30vw网格的宽度和高度将根据元素的大小(数量)进行调整。使用块级元素,全宽是自动的。全高不是。