如何在UniApp的CSS中设计一个布局,使得在一个固定高度(1000px)的父容器下,包含一个大小为200px高的大盒子和六个等高(100px)的小盒子,并在一行无法放下所有盒子时实现自动换行,同时保证多余的空间均匀分配给每个小盒子?
时间: 2024-12-30 07:38:19 浏览: 6
在 UniApp 的 CSS 中,我们可以使用 Flexbox 和 Grid 来达到这样的效果,这里我将展示如何使用 Flexbox 实现:
首先,设置父容器(`.parent`) 使用 Flexbox 布局,并指定其高度为 1000px:
```css
.parent {
display: flex;
height: 1000px;
flex-wrap: wrap; /* 当行宽不够时,元素换行 */
justify-content: space-between; /* 全部元素平均分布,如果有空隙,均匀分配 */
}
```
接下来,创建一个占位的大盒子 `.big-box` 高度为 200px:
```css
.big-box {
flex: 0 0 auto; /* 确保大盒子的高度固定为200px */
height: 200px;
}
```
然后,创建六个等高的小盒子 `.small-boxes`,设置高度为 100px,并使用 `flex-grow: 1` 让他们可以平均分配剩余空间:
```css
.small-boxes > .box {
flex: 1 0 100px; /* 同样高度,growable */
height: 100px;
}
```
如果想保证每个小盒子在换行后都能获得相等的宽度,可以在 `.parent` 容器上添加一个 min-width 属性,比如:
```css
.parent {
width: fit-content; /* 或者 min-width: calc(100% - (6 * 100px)); // 如果小盒子之间不留间距 */
}
```
这样一来,当一行放不下所有盒子时,小盒子会自动换行,且多余的空白会被均匀地分配给每个小盒子。
阅读全文