CSS - Grid column



Description

The grid-column property is used to control the placement of a grid item within the grid container in the column direction.

Example

Here is an example where grid item 1 will begin at the first column and span 2 columns −

You can edit and try running this code using Edit & Run option.

<!DOCTYPE html>
<html>
    <head>
    <title>CSS - grid-column</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-item1 {
            grid-column: 1 / span 2;
        }   
    </style>
    </head>
<body>
    <h4>Grid item 1 will begin at the first column and span 2 columns.</h4>
    <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>
</body>
</html>    

The grid-column-start property specifies where a grid item starts within the grid container.

  • grid-column-start: span 2; - It will make the item span across two columns.

  • grid-column-start: 2; - The grid item starts at the 2nd vertical grid line.

Here is an example where all the different values that can be passed to the grid-column-start −

You can edit and try running this code using Edit & Run option.

<!DOCTYPE html>
<html>
<head>
    <title>CSS - grid-column-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-item1 {
            grid-column-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-column-item1{
            grid-column-start: 2;
        }
    </style>
</head>
<body>
    <h4>Grid item 1 will span 3 columns.</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 1 will start from column 2.</h4>
    <div class="grid-container2">
        <div class="grid-column-item1">Grid item 1</div>
        <div class="grid-column-item2">Grid item 2</div>
        <div class="grid-column-item3">Grid item 3</div>
        <div class="grid-column-item4">Grid item 4</div>
        <div class="grid-column-item5">Grid item 5</div>
        <div class="grid-column-item6">Grid item 6</div>
    </div>
</body>
</html>

The grid-column-end property specifies where a grid item ends within the grid container.

  • grid-column-end: span 3; - It will make the item span across three columns.

  • grid-column-end: 3; - The grid item end at the 3rd vertical grid line.

Here is an example where all the different values that can be passed to the grid-column-end −

You can edit and try running this code using Edit & Run option.

<!DOCTYPE html>
<html>
<head>
    <title>CSS - grid-column-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 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-column-end:  span 3;
        }   
        .grid-container2 {
            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-container2 > div {
            background-color: rgb(228, 9, 9);
            border: 2px solid rgb(29, 231, 80);
            padding: 10px;
        }
        .grid-column-item1{
            grid-column-end: 3;
        }
    </style>
</head>
<body>
    <h4>Grid item 2 will span 3 columns.</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 will end on column line 3.</h4>
    <div class="grid-container2">
        <div class="grid-column-item1">Grid item 1</div>
        <div class="grid-column-item2">Grid item 2</div>
        <div class="grid-column-item3">Grid item 3</div>
        <div class="grid-column-item4">Grid item 4</div>
        <div class="grid-column-item5">Grid item 5</div>
        <div class="grid-column-item6">Grid item 6</div>
    </div>
</body>
</html>

The grid-column-gap property specifically sets the size of the gap between columns in the grid.

Here is an example where the value of grid-column-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-column-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-column-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>
    <p>The grid layout has 50px gap between the columns.</p>
    <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>
Advertisements