Flexbox布局模式:订购3个方格(左侧1个,右侧2个小侧)

时间:2016-08-25 09:35:06

标签: html css layout flexbox

我试图使用flexbox实现以下有序布局:

ordered flexbox layout

HTML:

<ul class="box-wrapper">
    <li class="box boxa">BOX A</li>
    <li class="box boxb">BOX B</li>
    <li class="box boxc">BOX C</li>
</ul>

CSS:

.box-wrapper{
    display:flex;
}
.boxa{
    order: 1;
    // should be: width: 50%;
    // should be: height: 100%;
}
.boxb{
    order: 3;
    // should be: width: 50%;
    // should be: height: 100%;
}
.boxc{
    order: 2;
    // should be: width: 50%;
    // should be: height: 100%;
}

浮动框-b和框-c似乎不起作用,所以我希望任何人都可以帮助我解决这个问题。 更改HTML布局不是此选项。

1 个答案:

答案 0 :(得分:4)

使用flexbox,您需要一个已知(或可计算)的高度来实现此而不更改HTML

* {
  margin: 0;
  padding: 0;
}
.box-wrapper {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  height: 200px;
  list-style-type: none;
}
.boxa {
  background: red;
  flex: 0 0 100%;
  width: 50%;
}
.boxb {
  background: orange;
  order: 2
}
.boxc {
  background: lightgreen;
}
.boxb,
.boxc {
  flex: 0 0 50%;
  width: 50%;
}
<ul class="box-wrapper">
  <li class="box boxa">BOX A</li>
  <li class="box boxb">BOX B</li>
  <li class="box boxc">BOX C</li>
</ul>