Flexbox 3 divs, two columns, one with two rows

前端 未结 2 1229
猫巷女王i
猫巷女王i 2020-12-09 10:49

I am trying to take

Three sequential divs and turn it into below. W

相关标签:
2条回答
  • 2020-12-09 11:33

    After thinking about this a little more, it is possible with flexbox. The container just has to have a defined height (%, px or vh) will work.

    http://codeply.com/go/U1DCKAx85d

    body {
      display: flex;
      flex-wrap: wrap;
      flex-direction: column;
      height: 100vh;
    }
    
    .a {
      flex: 0 0 100%;
      background: red;
    }
    
    .b, .c {
      flex: 0 0 50%;
      background: green;
    }
    
    .c {
      background: blue;
    }
    
    0 讨论(0)
  • 2020-12-09 11:46

    The Legit Method:
    *Recommended

    .flex-row {
        flex-direction: row;
        display: flex;
    }
    
    .flex-column {
        flex-direction: column;
        display: flex;
    }
    
    .flex-body {
        display: flex;
    }
    
    .flex-body div:not([class*="flex"]) {
        border: 1px solid white;
        flex: 1 1 200px;
        width: 300px;
    }
    <div class="flex-body">
      <div class="flex-row">
        <div style="background: #0980cc;"></div>
      </div>
      <div class="flex-column">
        <div style="background: #09cc69;"></div>
        <div style="background: #cc092f;"></div>
      </div>
    </div>

    The Hackish Method:
    *Not Recommended (I'm sure you'll notice why)

    .flex-body {
        display: flex;
        flex-direction: row-reverse;
        flex-wrap: wrap;
        justify-content: flex-end;
        align-content: stretch;
        align-items: stretch;
        transform: rotate(90deg);
        max-width: 500px;
        margin: auto;
    }
    
    .flex-body div {
        border: 1px solid white;
        height: 300px;
        flex: 1 1 200px;
    }
    
    .flex-body div:last-of-type {
        flex: 1 1 300px;
        height: 300px;
    }
    <div class="flex-body">
      <div style="background: #0980cc;"></div>
      <div style="background: #09cc69;"></div>
      <div style="background: #cc092f;"></div>
    </div>

    0 讨论(0)
提交回复
热议问题