CSS3 Flexbox: Responsive Website

This example demonstrates how to create a responsive website layout with flexbox:

HTML file: Displayed by browser:
<style>
.flex-container {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-flow: row wrap;
    flex-flow: row wrap;
    font-weight: bold;
    text-align: center;
}
.flex-container > * {
    padding: 10px;
    flex: 1 100%;
}
.main {
    text-align: left;
    background: cornflowerblue;
}
.header {background: coral;}
.footer {background: lightgreen;}
.aside1 {background: moccasin;}
.aside2 {background: violet;}
@media all and (min-width: 600px) {
    .aside { flex: 1 auto; }
}
@media all and (min-width: 800px) {
    .main { flex: 3 0px; }
    .aside1 { order: 1; }
    .main { order: 2; }
    .aside2 { order: 3; }
    .footer { order: 4; }
}
</style>
<body>
<div class="flex-container">
  <header class="header">Header</header>
  <article class="main">
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque sed ex turpis. Cras luctus nibh lectus, in ullamcorper ex tempor eleifend. Nulla bibendum, eros a consequat vestibulum, orci massa fermentum quam, sed commodo nunc ex vitae nisl. Aliquam ullamcorper interdum est nec tincidunt.</p>
  </article>
  <aside class="aside aside1">Aside 1</aside>
  <aside class="aside aside2">Aside 2</aside>
  <footer class="footer">Footer</footer>
</div>
</body>
Header

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque sed ex turpis. Cras luctus nibh lectus, in ullamcorper ex tempor eleifend. Nulla bibendum, eros a consequat vestibulum, orci massa fermentum quam, sed commodo nunc ex vitae nisl. Aliquam ullamcorper interdum est nec tincidunt.


Back button Table of Contents Next button