【发布时间】:2020-10-26 09:10:53
【问题描述】:
我正在开发这个应用程序,它有一个简单的布局(我能够实现)。 但是,我需要实现这 1 个奇怪的要求,我花了 2 天时间试图让它工作,唉,我需要一些帮助。
这是我当前拥有的 HTML:JSFiddle Link
HTML:
<body>
<div class="row flex-container">
<div class="col-sm-3" style="margin:5px">
<label>Label 1</label>
</div>
<div class="col-sm-3" style="margin:5px">
<label>Label 2</label>
</div>
<div class="col-sm-3" style="margin:5px">
<label>Label 3</label>
</div>
<div class="col-sm-3" style="margin:5px">
<label>Label 4</label>
</div>
<hr />
<div class="col-sm-3" style="margin:5px">
<label>Label 5</label>
</div>
<div class="col-sm-3" style="margin:5px">
<label>Label 6</label>
</div>
<div class="col-sm-3" style="margin:5px">
<label>Label 7</label>
</div>
<div class="col-sm-3" style="margin:5px">
<label>Label 8</label>
</div>
</div>
</body>
CSS:
.flex-item {
margin: 4px;
flex: 0 1 calc(25% - 8px);
}
.flex-container {
width: inherit;
display: flex;
flex-flow: row wrap;
position: relative;
}
.flex-container hr {
width: 100%;
padding: 0%;
margin: 0%;
margin-top: 20px;
margin-bottom: 20px;
height: 2px;
border: none;
background-color: #000;
}
现在,这是我想要的布局(如 JSFiddle 链接所示)。 如您所见,有 2 行,并且有一个 HR 标签将它们分开。 现在,如果我要从第 1 行中删除一个值,第 2 行的元素应该向上移动到第 1 行。
两行最多应包含 4 个元素。因此,如果我从第 1 行中删除 1 个元素,则只有 1 个元素应该向上移动到第 1 行,依此类推。
如果第 2 行中没有元素,则该 HR 甚至不应该显示。
我认为可以做的是,获取行中元素的数量,然后根据该数量在 HR 上输入“ngIf”。但是,这仍然不能解决我移动上述元素的第一个要求。
我确实坚持这个。我该如何继续这个?一些指导将不胜感激。我不需要确切的代码,也许需要思考如何实现这一点……这就是我需要帮助的地方。
【问题讨论】:
-
您也可以粘贴您的 ngfor 源代码吗? ? (您只需要在索引为 ===4 的 for 循环的索引上添加一个逻辑,然后添加 hr
-
不幸的是,没有
ngFor循环。 html 是这样硬编码的,值就这样来和使用。如果我有一个循环,那就太棒了。
标签: javascript html css angular flexbox