HTML5 Semantic Structure
body { min-height: 100vh; display: grid; grid-template-rows: auto 1fr auto; } body>*>div { max-width: 100ch; margin: 0 auto; } @media screen and (min-width: 600px) { main>div { display: grid; grid-template-columns: 1fr 3fr; } aside { grid-column: 1 / 2; } main>div>div { grid-column: 2 / -1; } }