自适应flexbox不适用于三列

巴斯范迪克

目前,我在flexbox中有三列(Plunkr中的当前情况)。

在此处输入图片说明

当屏幕变小时,我想将第二列放在其他两列的顶部(Plunkr中的理想情况)。

在此处输入图片说明

我在https://plnkr.co/edit/ZznzRKHvhdISykHP7jNh创建了一个Plunkr

是否可以通过完全修改css来获得所需的情况?

的CSS

  .row {
    display: flex;
  }
  .item {
    display: flex;
    flex: 1;
    height: 300px;
  }
  .item1 {
    flex: 1;
    background: orange;
  }
  .item2 {
    flex: 2;
    background: red;
  }
  .item3 {
    flex: 1;
    background: yellow;
  }

的HTML

<p>Current situation</p>
<div class="row">
  <div class="item item1">Foobar1</div>
  <div class="item item2">Foobar2</div>
  <div class="item item3">Foobar3</div>
</div>

<br>

<p>Desired situation with pure css</p>
<div class="row">
  <div class="item item2">Foobar2</div>
</div>
<div class="row">
  <div class="item item1">Foobar1</div>
  <div class="item item3">Foobar3</div>
</div>

保利

一个简单的flex-wrap和order媒体查询的更改,以使第二个框在行顺序中排在第一位。

Jsfiddle演示

.row {
   display: flex;
   height: 300px;
   flex-wrap: wrap;
 }
 .item {
   order: 2;
   flex: 1;
 }
 .item1 {
   background: orange;
 }
 .item2 {
   background: red;
   flex:2;
 }
 .item3 {
   background: yellow;
 }
 @media(max-width: 500px) {
   .item2 {
     flex: 100%;
     order: 1;
   }
 }
<div class="row">
  <div class="item item1">Foobar1</div>
  <div class="item item2">Foobar2</div>
  <div class="item item3">Foobar3</div>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章