css - 使用 flexbox 的动态网格布局
问题描述
我打算根据用户输入进行网格布局。例如,如果用户输入值“3”,则 3 x 3 的正方形会像井字棋游戏布局一样动态放置在页面上。我认为 flexbox 是一个很好的方法。但是,根据输入值,每个单元格的宽度和高度会有所不同。我听说通过设置 .px 来控制尺寸不是可取的方式。我研究了很多示例,但我还找不到动态布局示例。你对这个问题有什么建议吗?
我尝试过的方式如下所示。在这里,我使用了 bootstrap,但我意识到我不需要使用它,因为 gridcss 或 flexbox 已经提供了该功能。无论如何,在制作 html 字符串后,我将它们放入容器中,但正如您所料,高度远小于宽度。我想做的是自己调整宽度和高度,有什么好方法呢?我不想直接设置 px 值。
for (var i = 0; i < num; i++) {
html += '<div class="row">';
for (var j = 0; j < num; j++) {
html += `
<div class="col-md-1">0</div>`;
}
html += "</div>";
}
解决方案
假设这里的部分问题是在棋盘内创建具有 1:1 纵横比的单元格。
为此,您可以使用一个漂亮的 CSS 技巧,将单元格嵌入到另一个具有padding-top: 100%;
.
padding-top
是相对于父元素的width
,因此100%
纵横比的值将始终为 1:1
推荐阅读
- arrays - 在反应中对包含字符串对象的数组进行排序
- java - LDAP 未连接 weblogic
- boto3 - 文件未使用 python 上传到 ibm 云对象存储出现错误
- vue.js - Vue路由器如何在进入外部域之前触发导航守卫
- entity-framework-core - 未找到方法 Microsoft.EntityFrameworkCore.Metadata.Builders.IndexBuilder onmodelcreating
- python - ModuleNotFoundError:没有名为“bs4”的模块,但在 Python 3.8.5 上使用 PIP3 正确安装
- javascript - 当我将变量作为文档参考传递时无法获取文档快照
- google-sheets - 谷歌表计时公式
- c++ - C++在有序链表中搜索节点
- javascript - 在 REACTJS 中渲染时出现周期性错误