html - 为什么我的模板区域没有按预期堆叠?
问题描述
使用以下 CSS:
.container {
display : grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr 1fr;
grid-template-areas:
'first second'
'first second'
;
}
.first {
grid-area: first;
width: 200px;
height: 200px;
background-color: red;
}
.second {
grid-area: second;
width: 200px;
height: 200px;
background-color: #0eb5d6;
这些框将堆叠(显示为一个红色,1 个蓝色):
<div class="container">
<div class="first"></div>
<div class="second"></div>
<div class="first"></div>
<div class="second"></div>
</div>
但是,这些不会堆叠,并正确显示为具有相同 css 的 2 行:
<div class="container">
<div class="first"></div>
<div class="second"></div>
</div>
<div class='container'>
<div class="first"></div>
<div class="second"></div>
</div>
在我的实际用例中,我正在尝试使用 css 网格对齐表单。如果可能的话,我希望行不需要 div。或者这是避免将元素堆叠成一行的唯一方法?
解决方案
请注意,这里grid-template-areas
形成一个矩形first
,因此second
跨越它们的列。并且多个声明只会重叠:
为列出的每个单独的字符串创建一行,并为字符串中的每个单元格创建一列。行内和行间的多个命名单元标记创建一个跨相应网格单元的命名网格区域。除非这些单元格形成一个矩形,否则声明无效。
您可以在此处删除 grid-template-areas
- 没有它也可以正常工作。请参阅下面的演示:
.container {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr 1fr;
}
.first {
width: 200px;
height: 200px;
background-color: red;
}
.second {
width: 200px;
height: 200px;
background-color: #0eb5d6;
}
<div class="container">
<div class="first"></div>
<div class="second"></div>
<div class="first"></div>
<div class="second"></div>
</div>
推荐阅读
- snakemake - 动态分支/管道
- amazon-web-services - AWS 开发工具包 - 获取 S3 和 SES 的指标
- javascript - Axios 不发送正文
- python - 权限被拒绝:'/usr/sbin/authserver'
- javascript - 自从我切换到 replit 后,我的 djs 机器人发送所有输出两次
- mysql - 如何在表视图中查找每个条件的最大值
- e-commerce - 用户不存在或密码错误 Grandnode
- python - 如何更改散点图中的网格线颜色?
- html - 在 flex DIV 中居中底部定位按钮
- python - az cli 命令失败并出现错误“属性 shared_galleries 不存在”