Box Layout with CSS FlexBox
by g
HTML
<div id="container" class="box">
<div id="header" class="box"><h2>Header Text</h2></div>
<div id="center" class="box">
<div id="center_left" class="box">left column</div>
<div id="center_right" class="box">
<div class="box-title">Box Title</div>
<div class="box-content">
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
<p>right column</p>
</div>
</div>
</div>
<div id="footer" class="box">footer text</div>
</div>
CSS
body,
html {
height: 100%;
padding: 0;
margin: 0;
}
#container {
display: box;
display: -webkit-box;
display: -moz-box;
display: -ms-box;
box-orient: vertical;
-webkit-box-orient: vertical;
-moz-box-orient: vertical;
-ms-box-orient: vertical;
box-sizing: border-box;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
height: 100%;
width: 100%;
}
#center {
display: box;
display: -webkit-box;
display: -moz-box;
display: -ms-box;
box-orient: hozizontal;
-webkit-box-orient: hozizontal;
-moz-box-orient: hozizontal;
-ms-box-orient: hozizontal;
box-flex: 1;
-webkit-box-flex: 1;
-moz-box-flex: 1;
-ms-box-flex: 1;
}
#center_left {
box-flex: 1;
-webkit-box-flex: 1;
-moz-box-flex: 1;
-ms-box-flex: 1;
min-width: 100px;
}
#center_right {
box-flex: 2;
-webkit-box-flex: 2;
-moz-box-flex: 2;
-ms-box-flex: 2;
}
.box {
border: solid 1px #f00;
}
#center_right {
display: box;
display: -webkit-box;
display: -moz-box;
display: -ms-box;
box-orient: vertical;
-webkit-box-orient: vertical;
-moz-box-orient: vertical;
-ms-box-orient: vertical;
}
.box-content {
box-flex: 1;
-webkit-box-flex: 1;
-moz-box-flex: 1;
-ms-box-flex: 1;
overflow: auto;
min-height: 1px;
}