javascript - 如何在css中制作动态四列布局
问题描述
我想获取数据(标题、编号和日期)并将它们放入一个框(绿色框)并将这些框放在我网站的一行中,如下所示: screenshot
每行可以有 4 个项目,但因为盒子的数量是动态的,所以我只能在一行中有两个盒子。
即使只有 2 个盒子,我也希望盒子之间有一个均匀的空间。我不能使用 { justify-content:space-between } 因为在这种情况下我有两个盒子,一个贴在页面和其他棒在左侧,我不能使用 {margin-right} 或 {margin-left} 因为如果我有 4 个盒子,我希望盒子粘在两侧,就像我使用 { justify-content:space-between }
如果你能帮我解决这个问题,我会很高兴
PS:我在 reactjs 中编码
解决方案
您可以使用display: grid
来实现屏幕截图中的内容。这带来了额外的好处,即能够设置列相对于彼此的大小:
.boxcontainer{
display: grid; /* Use grid type layout to get columns */
grid-template-columns: 1fr 1fr 1fr 1fr; /* Proportions of the columns */
gap: 20px; /* Use gap here instead of margin in .box */
}
.box{
width: 100%; /* Use 100% of each column */
height: 200px; /* This can be whatever you want */
background-color: red;
}
<div class="boxcontainer">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
推荐阅读
- excel - Excel VBA代码将多个范围复制到另一个工作簿中的特定工作表
- javascript - 添加本地 json 文件以在 React 中获取对象
- python - Python:执行python代码时没有任何反应(P2P实现)
- java - 是否有任何解决方案可以在不同的方法中仅使用 1 个 findViewById
- javascript - 如何使用 JavaScript 在 div 中插入多个元素?
- javascript - react js中的“Readonly<{}>”类型不存在属性“currentTime”
- php - 尝试使用 swift mailer 从节点访问值以在电子邮件模板中呈现
- python - 如果在 lambda 中使用 python 关闭,如何 ping 和启动 EC2 实例
- r - 保持绘图的分辨率但在 R 中压缩大小
- apache-flink - 在 flink 中进行连接操作时出现 OutOfMemoryError