包装时如何更改弹性顺序[关闭]

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>

【讨论】:

不幸的是,当 abc 的大小事先未知或在运行时可变时,这将不起作用。

以上是关于包装时如何更改弹性顺序[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 iTunes 连接元数据中的图像位置? [关闭]

面试官:IO 操作必须要手动关闭吗?关闭流方法是否有顺序?

面试官:IO 操作必须要手动关闭吗?关闭流方法是不是有顺序?

如何关闭 iPad 上的橡胶/弹性滚动效果?

更改相对 div 中绝对按钮的顺序 [关闭]

调整屏幕大小时如何重新排序弹性项目?