关于 flex 布局的困惑

2024-05-30 16:27:27 +08:00
 andyskaura

现象是 flex 轴线上始终只能有一个元素,导致区域填不满,有没有什么好的方法指点一下。 要求 只用一个 flex 盒子,需要 item 的 order 做排序。

在线编辑: https://codesandbox.io/p/sandbox/test-flex-9j8psr

2442 次点击
所在节点    前端开发
13 条回复
andyskaura
2024-05-30 16:37:05 +08:00
liuhuihao
2024-05-30 16:41:06 +08:00
用 float ,别用 flex
dongtingyue
2024-05-30 16:44:57 +08:00
1 和 2 是同一行。。。。
EJW
2024-05-30 16:46:42 +08:00
2 和 3 写在一个 div 里?
iOCZS
2024-05-30 16:46:47 +08:00
flex 不支持瀑布流
Drool
2024-05-30 16:47:19 +08:00
感觉 grid 更方便
codehz
2024-05-30 16:49:42 +08:00
首先 grid layout 也支持 order...
MRG0
2024-05-30 16:50:13 +08:00
我正在做这个玩意,flex 无解,高度较小的 div 会独占那个空间,不能往下在塞东西,要么 grid ,要么 Vue Grid Layout
superedlimited
2024-05-30 16:53:39 +08:00
codehz
2024-05-30 16:58:59 +08:00
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
</div>
你这种布局用 grid 几秒搞定
.container {
display: grid;
gap: 5px;
grid-template-columns: 1fr 1fr;
}

.item:first-child {
grid-row: 1 / span 2;
}
.item {
box-shadow: 0 0 0 1px black;
}

order 也可以改顺序,不过这时候就不能用 first-child 来选择了,你需要自己在 order 为 1 的时候设置 grid row 的属性
andyskaura
2024-05-30 17:47:13 +08:00
@Drool
@codehz
@MRG0
@codehz #10

都忘了还有 grid 布局了,一直都是 flex 梭哈的,第一次遇到 flex 解决不了的情况。感谢各位哈,
Al0rid4l
2024-05-31 00:31:34 +08:00
flex 是一维的, 要么 float 要么 grid
jaminq
2024-07-04 07:56:16 +08:00
flex 只有一根轴,grid 两根

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1045427

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX