javascript - 创建具有不同 %width 的新 div
问题描述
我用一个 div 创建了一个部分。每次单击时,“单击”按钮都会添加新的 div。我需要什么:div 1 -> 100% 宽度(部分)当我单击时:div 1 和 div2(div 2 新)-> 分别获得 50% 的宽度。再次单击:div1、div2 和 div3 -> 各 30% 宽度。再次单击:div 4 以相同的宽度进入下一行
你有什么主意吗? https://jsfiddle.net/Vova_Champion/tcyw64wq/6/
document.getElementById("button").onclick = function() {
let ok = true;
if (ok === true) {
let div = document.createElement('div');
div.className = 'new-div';
document.getElementsByTagName('section')[0].appendChild(div);
}
};
section {
display: flex;
height: 100px;
width: 200px;
background: red;
flex-wrap: wrap;
overflow: auto;
}
div {
display: block;
height: 30px;
width: 100%;
max-width: 30%;
background: blue;
margin: 5px 2px;
}
#button {
color: red
}
<button id="button">Click button</button>
<section id="section">
<div></div>
</section>
解决方案
使用这个 div 样式:
div {
flex-grow: 1;
display:block;
height: 30px;
min-width: 30%;
background: blue;
margin: 5px 2px;
}
“Flex-grow”在 div 中赋予它们“权重”,具有相同 flex 增长的项目共享相同部分的可用空间。最小宽度会触发第 4 个 div 向下,因为将其添加到同一行会使它们的宽度变为 25%。
如果您需要任何进一步的解释,请询问!
推荐阅读
- python - 我想使用 LAADS DAAC 站点中给出的 Python 脚本从 HTTP 站点下载 MODIS 数据。但是在运行脚本时出现错误
- javascript - 用户登录后立即显示另一个组件
- java - org.springframework.web.client.ResourceAccessException:POST 请求上的 I/O 错误
- python-3.x - 创建事件标志
- r - 使用 lpSolveAPI 设置依赖于所选变量的求解器约束
- azure - 将电子邮件通道添加到 Microsoft Bot Framework 显示超时错误
- apache-kafka - 类 org.apache.kafka.abstracts.serialization.StringDeserializer 找不到
- machine-learning - 神经网络中的反向传播和前向传播
- angular - 如何转换两个 oberables 流
- android - Exoplayer View 找不到 player.prepare() 函数