Flex Box Grid
by rgthree
HTML
<div class="group">
<div class="row">
<div class="cell -fill">
<div class="item">A</div>
</div>
<div class="cell -fill">
<div class="item">B</div>
</div>
<div class="cell -fill">
<div class="item">C</div>
</div>
</div>
<div class="row -double">
<div class="cell -fill">
<div class="item">A</div>
</div>
<div class="cell">
<div class="item">B</div>
<div class="item">C</div>
</div>
</div>
<div class="row">
<div class="cell">
<div class="item">A</div>
</div>
<div class="cell -fill">
<div class="item">C</div>
</div>
</div>
<div class="row">
<div class="cell -fill">
<div class="item">A</div>
</div>
</div>
</div>
CSS
* {box-sizing: border-box;}
.group {
border: 1px solid #F00;
}
.row {
display: flex;
align-items: stretch;
flex-direction: row;
}
.cell {
text-align:center;
border: 1px solid #00F;
flex-grow: 0;
flex-shrink: 0;
padding: 10px;
width: 33.3%;
display: flex;
flex-direction: column;
align-items: stretch;
}
.cell.-fill {
flex-grow: 1;
flex-shrink: 1;
}
.item {
margin: 4px;
border: 1px solid #FC0;
min-height: 30px;
}
.row.-double .cell .item:only-child {
flex-grow: 1;
}