(内附图例)flex三栏布局,默认川字结构,媒询之后为凹字结构

结构如下,写死的,只能在这种结构下操作,不能提取出来,flex的属性试了一遍,目前没找到相应的方法,也去看了别人写的CSS库里面的内容,还没发现~ 所以上来请教下有没遇到这类需求的童鞋的解决办法~ 限定flex

<div class="container">
    <div class="cell"></div>
    <div class="cell"></div>
    <div class="cell"></div>
</div>

默认三栏结构

经过媒体查询之后则是:

响应式结构

阅读 3.3k
2 个回答

http://jsbin.com/gerija/6/edit?html,css,output

核心属性flex-basis

.container {
  display: flex;
  flex-wrap: wrap;
}

.cell {
  flex: 0 0 33.333333%;
}

@media (max-width: 300px) {
  .cell:nth-child(1) {
    flex-basis: 50%;
  }
  .cell:nth-child(2) {
    flex-basis: 50%;
  }
  .cell:nth-child(3) {
    flex-basis: 100%;
  }
}

其实这个问题可以放在栅格系统下完美解决,所以不妨直接参看一个栅格系统是怎样实现的

<div class="wrap">
    <div class="flex flex-two">
        <div class="flex-one column column-1">column-1</div>
        <div class="flex-one column column-2">column-2</div>
    </div>
    <div class="flex-one column column-3">column-3</div>
</div>
.flex{display: -webkit-flex;}
.flex-one{flex: 1;}
.flex-two{flex: 2;}
.column{border:3px solid pink;height:200px;margin:5px;}

@media (max-width: 600px) {
  .wrap{
    display: -webkit-flex;
  }
}

效果1:
图片描述
效果2:
图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题