<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;
  grid-template-areas: 'header header header'
                       'sidebar main main'
                       'footer footer footer';
}

.app > * { padding: 2rem; }

.header {
  grid-area: header;
  background-color: steelblue;
}

.footer { 
  grid-area: footer;
  background-color: skyblue;
}

.main {
  grid-area: main;
  background-color: #CCC;
}
    
.sidebar {
  grid-area: sidebar;
  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.