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>
Advertisements