I am learning to design a layout with CSS grid.
Here is a Codepen link of my code.
And here is a layout image on Github.
I want to insert one more row with three columns above the footer with this CSS code which is responsible for the layout:
grid-template-areas:
"nav nav nav"
"sidebar mycover mycover"
"sidebar main content1"
/* "main main main" */ // I don't know why this does not work
"footer footer footer";
When the new fourth row code "main main main"
is commented out, the layout works fine like the image link I gave above. But when I uncomment "main main main"
, the layout crashes and nothing is displayed. What is the problem?
body {
margin: 0px;
padding: 0px;
}
.item {
background-color: #1eaafc;
background-image: linear-gradient( 130deg, #6c52d9 0%, #1eaafc 85%, #3edfd7 100%);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
color: #ffffff;
border-radius: 4px;
/* border: 6px solid #171717; */
display: flex;
justify-content: center;
align-items: center;
font-size: 18px;
font-weight: bold;
}
.nav {
grid-area: nav;
}
.cover {
grid-area: mycover;
}
.sidebar {
grid-area: sidebar;
}
.content1 {
grid-area: content1;
}
.content2 {
grid-area: main;
}
.footer {
grid-area: footer;
}
.container {
border: 5px solid red;
display: grid;
width: 100%;
height: 100vh;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 100px 1fr 1fr 100px 80px;
grid-template-areas: "nav nav nav" "sidebar mycover mycover" "sidebar main content1"
/* "main main main" */
"footer footer footer";
}
<div class="container">
<div class="item nav">nav</div>
<div class="item cover">cover</div>
<div class="item sidebar">sidebar</div>
<div class="item content1">content1</div>
<div class="item content2">main</div>
<div class="item footer">footer</div>
</div>