CSS - Grid rows
Description
The grid-row property is used to control the vertical positioning and span of a grid item within the grid.
Example
Here is an example where grid item 2 start from row 1 and span 3 rows −
You can edit and try running this code using Edit & Run option.
<!DOCTYPE html>
<html>
<head>
<title>CSS - grid-row</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style type="text/css">
.grid-container {
display: grid;
grid-template-columns: auto auto auto;
color: white;
text-align: center;
width: 360px;
border: 2px solid rgb(29, 231, 80);
background-color: rgb(29, 231, 80);
}
.grid-container > div {
background-color: rgb(228, 9, 9);
border: 2px solid rgb(29, 231, 80);
padding: 10px;
}
.grid-item2{
grid-row: 1 / span 3;
}
</style>
</head>
<body>
<h3>Grid item 2 start from row 1 and span 3 rows.</h3>
<div class="grid-container">
<div class="grid-item1">Grid item 1</div>
<div class="grid-item2">Grid item 2</div>
<div class="grid-item3">Grid item 3</div>
<div class="grid-item4">Grid item 4</div>
<div class="grid-item5">Grid item 5</div>
<div class="grid-item6">Grid item 6</div>
</div>
</body>
</html>
The grid-row-start property defines the starting row line for the grid item.
grid-row-start: span 3 - The grid item will start at its designated position and span across 3 rows.
grid-row-start: 2 - it will start from row 2 in the grid's rows.
Here is an example where all the different values that can be passed to the grid-row-start −
You can edit and try running this code using Edit & Run option.
<!DOCTYPE html>
<html>
<head>
<title>CSS - grid-row-start</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style type="text/css">
.grid-container1 {
display: grid;
grid-template-columns: auto auto auto auto;
color: white;
text-align: center;
width: 360px;
border: 2px solid rgb(29, 231, 80);
background-color: rgb(29, 231, 80);
}
.grid-container1 > div {
background-color: rgb(228, 9, 9);
border: 2px solid rgb(29, 231, 80);
padding: 10px;
}
.grid-item2 {
grid-row-start: span 3;
}
.grid-container2 {
display: grid;
grid-template-columns: auto auto auto;
color: white;
text-align: center;
width: 360px;
border: 2px solid rgb(29, 231, 80);
background-color: rgb(29, 231, 80);
}
.grid-container2 > div {
background-color: rgb(228, 9, 9);
border: 2px solid rgb(29, 231, 80);
padding: 10px;
}
.grid-row-item3{
grid-row-start: 2;
}
</style>
</head>
<body>
<h4>Grid item 2 will span 3 rows.</h4>
<div class="grid-container1">
<div class="grid-item1">Grid item 1</div>
<div class="grid-item2">Grid item 2</div>
<div class="grid-item3">Grid item 3</div>
<div class="grid-item4">Grid item 4</div>
<div class="grid-item5">Grid item 5</div>
<div class="grid-item6">Grid item 6</div>
<div class="grid-item7">Grid item 7</div>
<div class="grid-item8">Grid item 8</div>
</div>
<h4>Grid item 3 will be positioned starting from row 2</h4>
<div class="grid-container2">
<div class="grid-row-item1">Grid item 1</div>
<div class="grid-row-item2">Grid item 2</div>
<div class="grid-row-item3">Grid item 3</div>
<div class="grid-row-item4">Grid item 4</div>
<div class="grid-row-item5">Grid item 5</div>
<div class="grid-row-item6">Grid item 6</div>
</div>
</body>
</html>
The grid-row-end property is used to define the ending row line for a grid item.
grid-row-end: span 3 - It will span 3 rows from its starting row line.
grid-row-end: 3 - The grid item will end on row-line 3.
Here is an example where all the different values that can be passed to the grid-row-end −
You can edit and try running this code using Edit & Run option.
<!DOCTYPE html>
<html>
<head>
<title>CSS - grid-row-end</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style type="text/css">
.grid-container1 {
display: grid;
grid-template-columns: auto auto auto;
color: white;
text-align: center;
width: 360px;
border: 2px solid rgb(29, 231, 80);
background-color: rgb(29, 231, 80);
}
.grid-container1 > div {
background-color: rgb(228, 9, 9);
border: 2px solid rgb(29, 231, 80);
padding: 10px;
}
.grid-item3 {
grid-row-end: span 3;
}
.grid-container2 {
display: grid;
grid-template-columns: auto auto auto;
color: white;
text-align: center;
width: 360px;
border: 2px solid rgb(29, 231, 80);
background-color: rgb(29, 231, 80);
}
.grid-container2 > div {
background-color: rgb(228, 9, 9);
border: 2px solid rgb(29, 231, 80);
padding: 10px;
}
.grid-row-item2 {
grid-row-end: 3;
}
</style>
</head>
<body>
<h4>Grid item 3 span 3 rows from its starting row line.</h4>
<div class="grid-container1">
<div class="grid-item1">Grid item 1</div>
<div class="grid-item2">Grid item 2</div>
<div class="grid-item3">Grid item 3</div>
<div class="grid-item4">Grid item 4</div>
<div class="grid-item5">Grid item 5</div>
<div class="grid-item6">Grid item 6</div>
</div>
<h4>Grid item 2 will end on row-line 3.</h4>
<div class="grid-container2">
<div class="grid-row-item1">Grid item 1</div>
<div class="grid-row-item2">Grid item 2</div>
<div class="grid-row-item3">Grid item 3</div>
<div class="grid-row-item4">Grid item 4</div>
<div class="grid-row-item5">Grid item 5</div>
<div class="grid-row-item6">Grid item 6</div>
<div class="grid-row-item7">Grid item 7</div>
<div class="grid-row-item8">Grid item 8</div>
</div>
</body>
</html>
The grid-row-gap property is used to control the size of the gap or space between rows in a grid container.
Here is an example where the value of grid-row-gap property is set to the 50px −
You can edit and try running this code using Edit & Run option.
<!DOCTYPE html>
<html>
<head>
<title>CSS - grid-row-gap</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style type="text/css">
.grid-container {
display: grid;
grid-template-columns: auto auto auto;
grid-row-gap: 50px;
color: white;
text-align: center;
width: 360px;
border: 2px solid rgb(29, 231, 80);
background-color: rgb(29, 231, 80);
}
.grid-container > div {
background-color: rgb(228, 9, 9);
border: 2px solid rgb(29, 231, 80);
padding: 10px;
}
</style>
</head>
<body>
<h3>The grid layout has 50px gap between columns.</h3>
<div class="grid-container">
<div class="grid-item1">Grid item 1</div>
<div class="grid-item2">Grid item 2</div>
<div class="grid-item3">Grid item 3</div>
<div class="grid-item4">Grid item 4</div>
<div class="grid-item5">Grid item 5</div>
<div class="grid-item6">Grid item 6</div>
<div class="grid-item7">Grid item 7</div>
<div class="grid-item8">Grid item 8</div>
<div class="grid-item9">Grid item 9</div>
</div>
</body>
</html>