【发布时间】:2021-01-08 07:19:01
【问题描述】:
这是我的场景...
- 当空间不足时,元素(div、li)开始像堆叠的卡片包一样相互重叠。 (在调整窗口大小时)
- 但是当有足够的空间甚至更多时,我希望它们彼此相邻,最大边距为 5px(它们之间没有任何额外的边距)。
- 元素的宽度和高度是固定的。
- 元素可以超过 5 个或更少,甚至 1 个。
我尝试了绝对位置和 calc() 但没有用。 我需要做 js jquery 还是用 css 做?
我的期望:
- 带有 5 个项目的橙色容器,例如当它有足够的空间甚至更多时 → link
- 带有 5 个项目的橙色容器,例如当空间不够时 → link
- 带有 2 件物品的橙色容器,例如当它有足够的空间甚至更多时 → link
- 带有 2 个项目的橙色容器,例如当空间不够时 → link
感谢这个答案https://stackoverflow.com/a/48395486/7872538 和这个数学的一点改变margin: 0 calc(((75% / 25) - 12px) + 5%);
我可以处理 5 个元素,但是当我删除一个或多个元素时,它看起来像这样 → link
有额外的空白空间。
这是我的html:
<div class="red-container">
<div class="orange-container">
<div class="box-a size">A</div>
<div class="box-b size">B</div>
<div class="box-c size">C</div>
<div class="box-d size">D</div>
<div class="box-f size">F</div>
</div>
</div>
到目前为止,这是我的 CSS:
.red-container {
padding: 10px;
border: 2px dotted red;
float: right;
width: 70%;
margin: 100px 0;
}
.orange-container {
width: auto;
height: auto;
border: 1px dashed orange;
float: right;
margin: 10px 0;
}
.size {
width: 100px;
height: 100px;
float: right;
text-align: center;
font-weight: bold;
font-size: 20px;
margin: 5px 5px 5px 0;
}
.box-a {
background: red;
}
.box-b {
background: DodgerBlue
}
.box-c {
background: green;
}
.box-d {
background: orange;
}
.box-f {
background: blueviolet;
margin-left: 5px;
}
【问题讨论】:
-
在没有看到任何代码的情况下很难帮助您。请包括所有相关代码、html css、jquery/javascript
-
@CarstenLøvboAndersen 感谢您的回复。但没有 js/jquery,但我尝试使用 css calc() 但结果并没有完全符合我的要求......
标签: javascript html jquery css flexbox