Reputation: 13
My problem here is that in the third item of the first container (grid-1-item-3), I want to create another grid to place 3 items in it, next to each other with a width of 33.33%. The 3 items should fill up the whole second container (container-2/grid-1-item-3).The colors are just there to make it easy to see what's happening.
.container-1{
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: auto;
grid-gap: 0px;
justify-content: auto;
align-content: auto;
}
.grid-1-item{
width: 100%;
height: 100px;
background-color: blue;
border: 5px solid red;
}
.container-2{
display: grid;
grid-template-rows: 100%;
grid-template-columns: 1fr 1fr 1fr;
grid-gap: 0px;
}
.grid-2-item{
width: 33.33%;
height: 50%;
background-color: black;
border: 1px solid white;
}
<!DOCTYPE html>
<html lang="en">
<head>
<title>Testing</title>
<link rel="stylesheet" type="text/css" href="Styles.css">
</head>
<body>
<header>
<div class="container-1">
<div class="grid-1-item" class="grid-1-item-1"></div>
<div class="grid-1-item" class="grid-1-item-2"></div>
<div class="grid-1-item" class="grid-1-item-3" class="container-2">
<div class="grid-2-item" class="grid-2-item-1"></div>
<div class="grid-2-item" class="grid-2-item-2"></div>
<div class="grid-2-item" class="grid-2-item-3"></div>
</div>
<div class="grid-1-item" class="grid-1-item-4"></div>
<div class="grid-1-item" class="grid-1-item-5"></div>
<div class="grid-1-item" class="grid-1-item-6"></div>
<div class="grid-1-item" class="grid-1-item-7"></div>
<div class="grid-1-item" class="grid-1-item-8"></div>
<div class="grid-1-item" class="grid-1-item-9"></div>
</div>
</header>
</body>
</html>
Upvotes: 0
Views: 39
Reputation: 2321
You can add grid-template-columns: repeat(3, 1fr);
to your subgrid
.container-1 {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: auto;
grid-gap: 0px;
justify-content: auto;
align-content: auto;
}
.grid-1-item {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(3, 1fr);
width: 100%;
height: 100px;
background-color: blue;
border: 5px solid red;
}
.grid-2-item {
background-color: black;
border: 1px solid white;
}
<div class="container-1">
<div class="grid-1-item grid-1-item-1"></div>
<div class="grid-1-item grid-1-item-2"></div>
<div class="grid-1-item grid-1-item-3">
<div class="grid-2-item grid-2-item-1"></div>
<div class="grid-2-item grid-2-item-2"></div>
<div class="grid-2-item grid-2-item-3"></div>
</div>
<div class="grid-1-item grid-1-item-4"></div>
<div class="grid-1-item grid-1-item-5"></div>
<div class="grid-1-item grid-1-item-6"></div>
<div class="grid-1-item grid-1-item-7"></div>
<div class="grid-1-item grid-1-item-8"></div>
<div class="grid-1-item grid-1-item-9"></div>
</div>
Upvotes: 0
Reputation: 1749
I think it can help you.
.container-1{
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: auto;
grid-gap: 0px;
justify-content: auto;
align-content: auto;
}
.grid-1-item{
width: 100%;
height: 100px;
background-color: blue;
border: 5px solid red;
}
.container-2{
display: grid;
grid-template-columns: auto auto auto;
}
.grid-2-item{
width: 100%;
height: 50%;
background-color: black;
border: 1px solid white;
}
<!DOCTYPE html>
<html lang="en">
<head>
<title>Testing</title>
<link rel="stylesheet" type="text/css" href="Styles.css">
</head>
<body>
<header>
<div class="container-1">
<div class="grid-1-item grid-1-item-1"></div>
<div class="grid-1-item grid-1-item-2"></div>
<div class="grid-1-item grid-1-item-3 container-2">
<div class="grid-2-item grid-2-item-1"></div>
<div class="grid-2-item grid-2-item-2"></div>
<div class="grid-2-item grid-2-item-3"></div>
</div>
<div class="grid-1-item grid-1-item-4"></div>
<div class="grid-1-item grid-1-item-5"></div>
<div class="grid-1-item grid-1-item-6"></div>
<div class="grid-1-item grid-1-item-7"></div>
<div class="grid-1-item grid-1-item-8"></div>
<div class="grid-1-item grid-1-item-9"></div>
</div>
</header>
</body>
</html>
Upvotes: 0
Reputation: 759
<div class="container-1">
<div class="grid-1-item grid-1-item-1"></div>
<div class="grid-1-item grid-1-item-2"></div>
<div class="grid-1-item grid-1-item-3 container-2">
<div class="grid-2-item grid-2-item-1"></div>
<div class="grid-2-item grid-2-item-2"></div>
<div class="grid-2-item grid-2-item-3"></div>
</div>
<div class="grid-1-item grid-1-item-4"></div>
<div class="grid-1-item grid-1-item-5"></div>
<div class="grid-1-item grid-1-item-6"></div>
<div class="grid-1-item grid-1-item-7"></div>
<div class="grid-1-item grid-1-item-8"></div>
<div class="grid-1-item grid-1-item-9"></div>
</div>
no duplicate class=
in same tag
Upvotes: 1