<div class="root">
<div class="header">Header</div>
<div class="banner">Banner</div>
<div class="main">Main</div>
<div class="side">Side</div>
<div class="footer">Footer</div>
</div>
* {
box-sizing: border-box;
font-weight: bold;
font-family: sans-serif;
}
.root {
border: 4px solid #000;
padding: 12px;
display: grid;
grid-template-columns: 2fr 1fr;
gap: 12px;
> * {
border: 4px solid #000;
padding: 12px;
display: flex;
align-items: center;
justify-content: center;
}
}
.header {
background-color: #acf;
grid-column-end: span 2;
}
.banner {
background-color: #fca;
height: 100px;
}
.main {
background-color: #faa;
height: 300px;
}
.side {
background-color: #afa;
grid-row: 2 / span 2;
grid-column-start: 2;
}
.footer {
background-color: #aff;
grid-column-end: span 2;
}
@media screen and (max-width: 525px) {
.root {
grid-template-columns: 1fr;
}
.header, .footer {
grid-column-end: auto;
}
.side {
grid-row-start: auto;
grid-row-end: auto;
grid-column-start: auto;
}
}
View Compiled
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.