Let’s create holy grail layout with css grid.
HTML
<div class="container"> <header>HEADER</header> <aside>ASIDE</aside> <main>MAIN</main> <footer>FOOTER</footer> </div>
CSS
html {
box-sizing: border-box;
}
*,
*::before,
*::after {
box-sizing: inherit;
}
body {
padding: 0;
margin: 0;
font-family: Arial, Helvetica, sans-serif
}
.container {
width: 98%;
height: 100vh;
margin: 0 auto;
display: grid;
}
header {
font-size: 38px;
background-color: #83caff;
display: flex;
align-items: center;
justify-content: center;
}
aside {
font-size: 28px;
background-color: #cc99cc;
display: flex;
align-items: center;
justify-content: center;
}
main {
font-size: 32px;
background-color: #ffcccc;
display: flex;
align-items: center;
justify-content: center;
}
footer {
font-size: 28px;
background-color: #83caff;
display: flex;
align-items: center;
justify-content: center;
}
@media(min-width: 768px) {
.container {
grid-template-areas:
"h h h h h h h h"
"a a m m m m m m"
"a a m m m m m m"
"a a m m m m m m"
"a a m m m m m m"
"a a m m m m m m"
"f f f f f f f f";
}
header {
grid-area: h;
}
aside {
grid-area: a;
}
main {
grid-area: m
}
footer {
grid-area: f;
}
}