<article class="app">
  <header class="header"><h2>Header</h2></header>
  <main class="main"><h2>Main</h2></main>
  <aside class="sidebar"><h2>Sidebar</h2></aside>
  <footer class="footer"><h2>Footer</h2></footer>
</article>
html {
  box-sizing: border-box;
  font-family: sans-serif;
  font-size: 16px;
}

*,
*:after,
*:before { 
 padding: 0;
 margin: 0;
 box-sizing: inherit;
}
    
.app {
  min-height: 100vh;
  background-color: #222;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: 5rem 1fr 5rem;
  grid-gap: 1vw;
}

.app > * { padding: 2rem; }

.header {
  grid-column: 1 / 4;
  grid-row: 1 / 2;
  background-color: steelblue;
}

.footer {
  grid-column: 1 / 4;
  grid-row: 3 / 4;  
  background-color: skyblue;
}

.main {
  grid-column: 2 / 4;
  grid-row: 2 / 3;
  background-color: #CCC;
}
    
.sidebar {
  grid-column: 1 / 2;
  grid-row: 2 / 3;
  background-color: deepskyblue;
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.