包装时如何更改弹性顺序[关闭]
Posted
技术标签:
【中文标题】包装时如何更改弹性顺序[关闭]【英文标题】:How to change the flex order when wrapping [closed] 【发布时间】:2016-09-26 03:14:45 【问题描述】:我想根据屏幕大小实现这样的渲染:
+---------------------------+
| A | B | C |
+---------------------------+
+---------------+
| A | C |
| B |
+---------------+
如果所有尺寸都是固定的,我可以使用 flex order
属性进行管理
但是我的 C 容器的大小不是固定的,所以我不能使用静态媒体查询。
有没有办法做到这一点?
编辑:
我做了一个足够好的近似值:在媒体查询中选择可能需要包装的所有屏幕,我将 B 容器的 order
更改为较大的值,同时,我设置了它的 @ 987654324@ 到 100% 强制换行。
【问题讨论】:
【参考方案1】:您可以使用flex: 0 0 100%
使b
元素全宽,并使用媒体查询DEMO 将顺序更改为order: 2
*
box-sizing: border-box;
body, html
margin: 0;
padding: 0;
.content
display: flex;
flex-wrap: wrap;
.b
background: lightblue;
.a, .b, .c
border: 1px solid black;
flex: 1;
padding: 10px;
@media(max-width: 768px)
.b
flex: 0 0 100%;
order: 2;
<div class="content">
<div class="a">A</div>
<div class="b">B</div>
<div class="c">C</div>
</div>
【讨论】:
不幸的是,当a
、b
和 c
的大小事先未知或在运行时可变时,这将不起作用。以上是关于包装时如何更改弹性顺序[关闭]的主要内容,如果未能解决你的问题,请参考以下文章