Grid Flex

O grid flex é ideal quando você precisa trabalhar em uma única dimensão, seja ela vertical ou horizontal. Ele ajusta automaticamente a altura dos elementos na mesma linha para coincidir com a altura da coluna mais alta.

O sistema de grid flex tem 3 breakpoints, mobile-first 1 coluna, 2 colunas a partir da resolução de 480px e 12 colunas a partir da resolução de 768px

cn_0
cn_0
cn_0
cn_0
  • cn_0
  • cn_0
  • cn_0
  • cn_0
  • cn_0
  • cn_0
  • cn_0
cn_50
cn_0
cn_0
cn_0
<div class="flexbox">
    <div class="cn_0"></div>
    <div class="cn_0"></div>
    <div class="cn_0"></div>
    <div class="cn_0"></div>
</div>
<ul class="flexbox">
    <li class="cn_0"></li>
    <li class="cn_0"></li>
    <li class="cn_0"></li>
    <li class="cn_0"></li>
    <li class="cn_0"></li>
    <li class="cn_0"></li>
    <li class="cn_0"></li>
</ul>
<div class="flexbox">
    <div class="cn_50"></div>
    <div class="cn_0"></div>
    <div class="cn_0"></div>
    <div class="cn_0"></div>
</div>

cn_20
cn_20
cn_20
cn_20
cn_20
cn_25
cn_25
cn_25
cn_25
cn_33
cn_33
cn_33
cn_50
cn_50
cn_100
<div class="flexbox">
    <div class="cn_20"></div>
    <div class="cn_20"></div>
    <div class="cn_20"></div>
    <div class="cn_20"></div>
    <div class="cn_20"></div>

    <div class="cn_25"></div>
    <div class="cn_25"></div>
    <div class="cn_25"></div>
    <div class="cn_25"></div>

    <div class="cn_33"></div>
    <div class="cn_33"></div>
    <div class="cn_33"></div>

    <div class="cn_50"></div>
    <div class="cn_50"></div>

    <div class="cn_100"></div>
</div>

cn_80
cn_20
cn_75
cn_25
cn_70
cn_30
cn_67
cn_33
cn_60
cn_40
<div class="flexbox">
    <div class="cn_80"></div>
    <div class="cn_20"></div>

    <div class="cn_75"></div>
    <div class="cn_25"></div>

    <div class="cn_70"></div>
    <div class="cn_30"></div>

    <div class="cn_67"></div>
    <div class="cn_33"></div>

    <div class="cn_60"></div>
    <div class="cn_40"></div>
</div>

cn_20
cn_60
cn_20
cn_25
cn_50
cn_25
cn_30
cn_40
cn_30
cn_40
cn_20
cn_40
<div class="flexbox">
    <div class="cn_20"></div>
    <div class="cn_60"></div>
    <div class="cn_20"></div>

    <div class="cn_25"></div>
    <div class="cn_50"></div>
    <div class="cn_25"></div>

    <div class="cn_30"></div>
    <div class="cn_40"></div>
    <div class="cn_30"></div>

    <div class="cn_40"></div>
    <div class="cn_20"></div>
    <div class="cn_40"></div>
</div>
cn_70
cn_100
cn_50
cn_50
cn_50
cn_50
cn_30
<div class="flexbox">
    <div class="cn_70">
        <div class="flexbox">
            <div class="cn_100"></div>
            <div class="cn_50"></div>
            <div class="cn_50"></div>
            <div class="cn_50"></div>
            <div class="cn_50"></div>
        </div>
    </div>
    <div class="cn_30"></div>
</div>
cn_30
cn_70
cn_100
cn_100
cn_100
<div class="flexbox">
    <div class="cn_70"></div>
    <div class="cn_30">
        <div class="flexbox">
            <div class="cn_100"></div>
            <div class="cn_100"></div>
            <div class="cn_100"></div>
        </div>
    </div>
</div>
.flexbox {
    display: flex;
    flex-wrap: wrap;
}
[class^="cn_"], [class*=" cn_"] {
    flex: 0 0 100%;
}
@media(min-width: 480px) {
    /* 2 tamanhos de colunas */
    [class^="cn_"], [class*=" cn_"] {
        flex: 0 0 50%;
    }
    /* auto */
    .cn_0 { 
        flex: 1 0 0% 
    }
    .cn_100 {
        flex: 0 0 100%;
    }
}
@media(min-width: 768px) {
    .cn_20 { flex: 0 0 20% }
    .cn_25 { flex: 0 0 25% }
    .cn_30 { flex: 0 0 30% }
    .cn_33 { flex: 0 0 33.333333% }
    .cn_40 { flex: 0 0 40% }
    .cn_50 { flex: 0 0 50% }
    .cn_60 { flex: 0 0 60% }
    .cn_67 { flex: 0 0 66.666667% }
    .cn_70 { flex: 0 0 70% }
    .cn_75 { flex: 0 0 75% }
    .cn_80 { flex: 0 0 80% }
}