gpt4 book ai didi

html - 让 flexbox children 包裹着一个多行高的 child

转载 作者:太空宇宙 更新时间:2023-11-03 21:09:30 25 4
gpt4 key购买 nike

我正在迭代元素列表(红色框)。我有另一个不属于此列表的元素,我想将其插入到右上角的元素网格中(高蓝色框)。我正在使用 flexbox 并为了相应地定位它。但我希望第 2 行红色元素的宽度为 3 项,并与蓝色放在一起内联包装。下面是我理想结果的屏幕截图。我失败尝试底部的代码。

enter image description here

.flex {
display: flex;
flex-wrap: wrap;
margin: auto;
max-width: 120px;
}

.flex>div {
background: red;
height: 25px;
width: 25px;
margin: 2px;
order: 3;
}

.flex>div:nth-child(-n+3) {
order: 1;
}

aside {
height: 55px;
width: 25px;
margin: 2px;
background: blue;
order: 2;
}
<div class="flex">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<aside></aside>
</div>

值得注意的是,我知道我可以用 float 来做到这一点,但由于与这个问题无关的其他原因,我有点受困于 flexbox。对任何和所有建议持开放态度。

最佳答案

这是您在使用 flexbox 时遇到的问题,以及几个可能的解决方案:

这是一个使用 flexbox 的计算器键盘布局:

这是使用网格的最简洁、最高效的 CSS 解决方案:

.flex {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-auto-rows: 25px;
grid-gap: 5px;
margin: auto;
max-width: 120px;
}

aside {
grid-column: 4;
grid-row: 1 / span 2;
background: blue;
}

.flex > div {
background: red;
}
<div class="flex">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<aside></aside>
</div>

jsfiddle demo

css grid browser support

关于html - 让 flexbox children 包裹着一个多行高的 child,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48455347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com