html - 如何使内容垂直流动
问题描述
我正在创建一个动态站点,其中有一个父 div 和子 div(它们的宽度是可变的)在父级内部并试图做到这一点:当创建一个新的 div 时,它被向下推,直到它的父级高度被填充然后开始一个新列,例如:
图片:
<style>
.parent {
height: 800px;
width: 100%;
overflow-y: hidden;
border: 1px solid black;
}
.child1 {
background-color: blue;
height: 150px;
width: 150px;
}
.child1 {
background-color: red;
height: 150px;
width: 300px;
}
</style>
<div class="parent">
<div class="child1"></div>
<div class="child1"></div>
<div class="child1"></div>
<div class="child2"></div>
<div class="child1"></div>
<div class="child1"></div>
<div class="child2"></div>
<div class="child1"></div>
<div class="child1"></div>
<div class="child1"></div>
<div class="child2"></div>
<div class="child1"></div>
<div class="child1"></div>
<div class="child2"></div>
</div>
解决方案
CSSdisplay: grid
是附件图像中描述的布局的解决方案:
.parent {
height: 800px;
width: 100%;
border: 1px solid black;
display: grid;
grid-gap: 2px;
grid-auto-columns: 150px;
grid-template-rows: repeat(4, 1fr);
grid-auto-flow: column;
color: white;
}
.child1 {
background-color: blue;
}
.child2 {
background-color: red;
grid-column: span 2;
}
网格:
display: grid;
在容器上启用网格布局。
grid-gap: 2px;
指定网格中的行和列之间的间距为 2px。
grid-auto-columns: 150px;
网格中的列应为 150 像素宽。
grid-template-rows: repeat(4, 1fr);
网格将包含 4 行等于高度。
grid-auto-flow: column;
当内容到达容器底部时,将创建一个新列。
网格元素:
如果没有任何额外的 css,蓝色元素将各自占据网格中 1 行高和 1 列宽的单元格。
.child2 {
background-color: red;
grid-column: span 2;
}
红色元素将跨越 2 列。
推荐阅读
- python - 调整作为 DICOM 图像的 NumPy 数组的大小 - 调整大小或重新缩放?
- python - 推荐表排序数据框结果按降序排列 Pandas
- shieldui - ShieldUI Grid 组件中的 ColumnTemplate 中的数据未同步
- android - Gradle同步失败Android工作室
- python - 在 AzureML 上管理训练/测试/验证拆分的最佳方式
- python - 在终端“TypeError: cannot unpack non-iterable NoneType object”中运行代码发生错误
- c# - ExecuteReader 试图执行不应执行的过程
- java - 如何在操作栏中正确设置图像和文本?
- javascript - 按照教程但 onSumbit(e) 没有打印到控制台
- python-3.x - Python中的Snowflake PUT命令状态