更改不同行flexbox之间的堆栈顺序

时间:2017-05-11 09:40:05

标签: html css css3 flexbox

早安。我试图在flexbox情况下更改堆叠顺序,其中有2列,但第一列包含需要放入第二列的位置。因此,在移动设备上,我需要订购不同于源订单的订购。

这是大型的

col 1     col 2
----------==============
[A]         [C]
[B]

A和B在一列中,C在另一列中

但是在小断点上,它必须是

[A]
[C]
[B]

这只能使用Flexbox吗?

所以澄清一下。 HTML结构如下:

row
  column
    divA
    divB

  column
    divC

Codepen example



.a { background-color: green; }
.b { background-color: red; }
.c { background-color: blue; }

.row {
  display: flex;
  flex-direction: column;
}
.column {
  flex: 1;
}

@media (min-width: 768px) {
  .row {
     flex-direction: row;
  }
}

<div class="row">
  
  <div class="column">
      <div class="a">A</div>
      <div class="b">B</div>
  </div>
  <div class="column c">C</div>
</div>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:4)

您可以通过媒体查询和订单实现您想要的目标:

.a {
  background-color: green;
  order: 1;
}

.b {
  background-color: red;
  order: 3;
}

.c {
  background-color: blue;
  order: 2;
}

.row {
  width: 100%;
  display: flex;
  flex-direction: row; 
  flex-wrap: wrap;     /* add this so you don't need the extra wrapper div */
}

.row>div {
  width: 50%; /* start off width children being 50% width */
}

@media (max-width: 768px) {
  .row>div {
     /* for small screens */
    width: 100%;
  }
}
<div class="row">
  <div class="a">A</div>
  <div class="b">B</div>
  <div class="c">C</div>
</div>