html - CSS Grid 将高度和宽度拉伸到容器
问题描述
我无法让 CSS Grid 的高度和宽度都拉伸到其父级大小。将其设置为 100% 时宽度会很好地拉伸,但高度会保持其初始大小?我不确定在哪里计算高度大小。
将所有行的 grid-template-rows 设置为 25% 时,我认为这会给我所需的 100% 高度,但它不起作用。
body {
margin: 10px;
background-color: red;
height: 100%;
}
.wrapper {
display: grid;
grid-gap: 1px;
background-color: #fff;
color: #444;
grid-template-rows: 25% 25% 25% 25%;
grid-template-columns: auto auto auto auto;
grid-template-areas:
"a b c d"
"e f f g"
"h f f i"
"j k l m";
height: 100%;
width: 100%;
}
.box {
background-color: #444;
color: #fff;
padding: 20px;
font-size: 150%;
}
.a {
grid-area: a;
}
.b {
grid-area: b;
}
.c {
grid-area: c;
}
.d {
grid-area: d;
}
.e {
grid-area: e;
}
.f {
grid-area: f;
}
.g {
grid-area: g;
}
.h {
grid-area: h;
}
.i {
grid-area: i;
}
.j {
grid-area: j;
}
.k {
grid-area: k;
}
.l {
grid-area: l;
}
.m {
grid-area: m;
}
<div class="wrapper">
<div class="box a">A</div>
<div class="box b">B</div>
<div class="box c">C</div>
<div class="box d">D</div>
<div class="box e">E</div>
<div class="box f">F</div>
<div class="box g">G</div>
<div class="box h">H</div>
<div class="box i">I</div>
<div class="box j">J</div>
<div class="box k">K</div>
<div class="box l">L</div>
<div class="box m">M</div>
</div>
解决方案
要跟随屏幕高度,您可以使用视口单位vh
而不是px
or %
;
body {
background-color: red;
height: 100%;
}
.wrapper {
display: grid;
grid-gap: 1px;
background-color: #fff;
color: #444;
grid-template-rows: 25% 25% 25% 25%;
grid-template-columns: auto auto auto auto;
grid-template-areas: "a b c d" "e f f g" "h f f i" "j k l m";
height: 100vh;
width: 100%;
}
.box {
background-color: #444;
color: #fff;
padding: 20px;
font-size: 150%;
}
.a {
grid-area: a;
}
.b {
grid-area: b;
}
.c {
grid-area: c;
}
.d {
grid-area: d;
}
.e {
grid-area: e;
}
.f {
grid-area: f;
}
.g {
grid-area: g;
}
.h {
grid-area: h;
}
.i {
grid-area: i;
}
.j {
grid-area: j;
}
.k {
grid-area: k;
}
.l {
grid-area: l;
}
.m {
grid-area: m;
}
<div class="wrapper">
<div class="box a">A</div>
<div class="box b">B</div>
<div class="box c">C</div>
<div class="box d">D</div>
<div class="box e">E</div>
<div class="box f">F</div>
<div class="box g">G</div>
<div class="box h">H</div>
<div class="box i">I</div>
<div class="box j">J</div>
<div class="box k">K</div>
<div class="box l">L</div>
<div class="box m">M</div>
</div>
推荐阅读
- android - 带有 Android 模拟器的 AR 应用
- wordpress - 使用 .htaccess 301 重定向时重定向过多的注意事项
- batch-file - 删除两个或多个不同目录下的ftp服务器文件
- excel - 我是初学者,如何在 VBA excel 中获取变量中的单元格值?
- opencv - OpenCV Haar 分类器:训练过早停止
- sql - SQL 长时间运行的查询/最大化服务器资源,例如 RAM/CPU
- html - 设置一个 img src 占位符进行测试
- c - 链接 libwebsockets 库
- amazon-sqs - 设置手动确认 SQS 消息的 Spring Cloud AWS 问题
- c# - 优化海量列表的流程
在 C# 中