JSFiddle - React, Tailwind, and code Playground
by tenold
HTML
<div class="box-container cf">
<div class="column">
<div class="box span-1x2">0</div>
</div>
<div class="column">
<div class="box span-1x1">1</div>
<div class="box span-1x1">2</div>
</div>
<div class="column">
<div class="box span-2x2">3</div>
</div>
</div>
CSS
.box-container {
width: 240px;
margin-bottom: 50px;
background: blue;
}
.column {
float:left;
}
.box {
margin-bottom: 10px;
margin-right: 10px;
background: red;
}
.span-1x1 {
width: 50px;
height: 50px;
}
.span-1x2 {
width: 50px;
height: 110px;
}
.span-2x1 {
width: 110px;
height: 50px;
}
.span-2x2 {
width: 110px;
height: 110px;
}
/**
* For modern browsers
* 1. The space content is one way to avoid an Opera bug when the
* contenteditable attribute is included anywhere else in the document.
* Otherwise it causes space to appear at the top and bottom of elements
* that are clearfixed.
* 2. The use of `table` rather than `block` is only necessary if using
* `:before` to contain the top-margins of child elements.
*/
.cf:before,
.cf:after {
content: " "; /* 1 */
display: table; /* 2 */
}
.cf:after {
clear: both;
}
/**
* For IE 6/7 only
* Include this rule to trigger hasLayout and contain floats.
*/
.cf {
*zoom: 1;
}