Skip to main content

Command Palette

Search for a command to run...

Grid in CSS

Published
•5 min read•View as Markdown
Grid in CSS

Introduction

Grid layout aligns the items in a row and column. It is a two-dimensional layout. It makes responsiveness easy by changing a couple of lines for different screens. Grid property applied on the parent container. Hence, an HTML element becomes a grid container.

.container {
  display: grid;
}

Children inside grid container automatically become grid items.

Grid Columns

Vertical lines of grid items are called columns.

Grid Rows

Horizontal lines of grid items are called rows. images.png

Grid Gaps

The spaces between each column or row are called gaps.

images (1).png

#Grid Container Grid property is set on the parent element to make that element as grid container. Grid container has grid items inside it.

Grid-template-columns

The grid-template-columns property defines the number of columns in the grid layout and defines the width of each column.

.container{
            display:grid;
            grid-template-columns: auto auto auto ;
            column-gap: 10px;
            row-gap:10px;
        }
        .items{
            background-color: red;
        }
<div class="container">
        <div class="item1 items">one</div>
        <div class="item2 items">two</div>
        <div class="item3 items">three</div>
        <div class="item4 items">four</div>
        <div class="item5 items">five</div>
        <div class="item6 items">six</div>
        <div class="item7 items">seven</div>
        <div class="item8 items">eight</div>
        <div class="item9 items">nine</div>
    </div>

Screenshot (1631).png

Grid-template-rows

Grid-template-row defines the height of each row.

 .container{
            display:grid;
            grid-template-columns: auto auto auto ;
            column-gap: 10px;
            row-gap:10px;
            grid-template-rows: 100px 50px 20px;
        }
        .items{
            background-color: red;
        }
<div class="container">
        <div class="item1 items">one</div>
        <div class="item2 items">two</div>
        <div class="item3 items">three</div>
        <div class="item4 items">four</div>
        <div class="item5 items">five</div>
        <div class="item6 items">six</div>
        <div class="item7 items">seven</div>
        <div class="item8 items">eight</div>
        <div class="item9 items">nine</div>
    </div>

Screenshot (1632).png

Justify-content

Justify-content is used to align the items horizontally inside the grid container. Values for justify-content are space-around, space-evenly, space-between, center, start, and end.

space-around

.container{
            display:grid;
            grid-template-columns: auto auto auto ;
            column-gap: 10px;
            row-gap:10px;
            grid-template-rows: auto auto auto;
            justify-content: space-around;
            height:500px;
            border:3px solid black;
        }
        .items{
            background-color: red;
        }
<div class="container">
        <div class="item1 items">one</div>
        <div class="item2 items">two</div>
        <div class="item3 items">three</div>
        <div class="item4 items">four</div>
        <div class="item5 items">five</div>
        <div class="item6 items">six</div>
        <div class="item7 items">seven</div>
        <div class="item8 items">eight</div>
        <div class="item9 items">nine</div>
    </div>

Screenshot (1633).png

space-between

.container{
            display:grid;
            grid-template-columns: auto auto auto ;
            column-gap: 10px;
            row-gap:10px;
            grid-template-rows: auto auto auto;
            justify-content: space-between;


            height:500px;
            border:3px solid black;
        }
        .items{
            background-color: red;
        }
<div class="container">
        <div class="item1 items">one</div>
        <div class="item2 items">two</div>
        <div class="item3 items">three</div>
        <div class="item4 items">four</div>
        <div class="item5 items">five</div>
        <div class="item6 items">six</div>
        <div class="item7 items">seven</div>
        <div class="item8 items">eight</div>
        <div class="item9 items">nine</div>
    </div>

Screenshot (1634).png

space-evenly

.container{
            display:grid;
            grid-template-columns: auto auto auto ;
            column-gap: 10px;
            row-gap:10px;
            grid-template-rows: auto auto auto;
            justify-content: space-evenly;


            height:500px;
            border:3px solid black;
        }
        .items{
            background-color: red;
        }
<div class="container">
        <div class="item1 items">one</div>
        <div class="item2 items">two</div>
        <div class="item3 items">three</div>
        <div class="item4 items">four</div>
        <div class="item5 items">five</div>
        <div class="item6 items">six</div>
        <div class="item7 items">seven</div>
        <div class="item8 items">eight</div>
        <div class="item9 items">nine</div>
    </div>

Screenshot (1635).png

Center

.container{
            display:grid;
            grid-template-columns: auto auto auto ;
            column-gap: 10px;
            row-gap:10px;
            grid-template-rows: auto auto auto;
            justify-content: center;


            height:500px;
            border:3px solid black;
        }
        .items{
            background-color: red;
        }
<div class="container">
        <div class="item1 items">one</div>
        <div class="item2 items">two</div>
        <div class="item3 items">three</div>
        <div class="item4 items">four</div>
        <div class="item5 items">five</div>
        <div class="item6 items">six</div>
        <div class="item7 items">seven</div>
        <div class="item8 items">eight</div>
        <div class="item9 items">nine</div>
    </div>

Screenshot (1636).png

start

.container{
            display:grid;
            grid-template-columns: auto auto auto ;
            column-gap: 10px;
            row-gap:10px;
            grid-template-rows: auto auto auto;
            justify-content: start;


            height:500px;
            border:3px solid black;
        }
        .items{
            background-color: red;
        }
<div class="container">
        <div class="item1 items">one</div>
        <div class="item2 items">two</div>
        <div class="item3 items">three</div>
        <div class="item4 items">four</div>
        <div class="item5 items">five</div>
        <div class="item6 items">six</div>
        <div class="item7 items">seven</div>
        <div class="item8 items">eight</div>
        <div class="item9 items">nine</div>
    </div>

Screenshot (1637).png

end

.container{
            display:grid;
            grid-template-columns: auto auto auto ;
            column-gap: 10px;
            row-gap:10px;
            grid-template-rows: auto auto auto;
            justify-content: end




            height:500px;
            border:3px solid black;
        }
        .items{
            background-color: red;
        }
<div class="container">
        <div class="item1 items">one</div>
        <div class="item2 items">two</div>
        <div class="item3 items">three</div>
        <div class="item4 items">four</div>
        <div class="item5 items">five</div>
        <div class="item6 items">six</div>
        <div class="item7 items">seven</div>
        <div class="item8 items">eight</div>
        <div class="item9 items">nine</div>
    </div>

image.png

Align-content

Align-content aligns the items vertically inside the grid container. Values for align-content are a space-around, space-between, space-evenly, space-between, center, start, and end.

.container{
            display:grid;
            grid-template-columns: auto auto auto ;
            column-gap: 10px;
            row-gap:10px;
            grid-template-rows: auto auto auto;
            align-content: center;
            height:500px;
            border:3px solid black;
        }
        .items{
            background-color: red;
        }
<div class="container">
        <div class="item1 items">one</div>
        <div class="item2 items">two</div>
        <div class="item3 items">three</div>
        <div class="item4 items">four</div>
        <div class="item5 items">five</div>
        <div class="item6 items">six</div>
        <div class="item7 items">seven</div>
        <div class="item8 items">eight</div>
        <div class="item9 items">nine</div>
    </div>

Screenshot (1639).png

The rest of the values are the same as the justify-content value.

Grid items

We can style the grid items so that they will span multiple columns and/or rows.

Grid-column

Grid-column property defines how many columns to span. Suppose we want to span column2 use the following line of code.

.container{
            display:grid;
            grid-template-columns: auto auto auto ;
            column-gap: 10px;
            row-gap:10px;
            grid-template-rows: auto auto auto;

            height:500px;
            border:3px solid black;
        }
        .items{
            background-color: red;
        }
        .item2{
            grid-column: 2/ span 2;
        }
<div class="container">
        <div class="item1 items">one</div>
        <div class="item2 items">two</div>
        <div class="item3 items">three</div>
        <div class="item4 items">four</div>
        <div class="item5 items">five</div>
        <div class="item6 items">six</div>
        <div class="item7 items">seven</div>
        <div class="item8 items">eight</div>
        <div class="item9 items">nine</div>
    </div>

Screenshot (1640).png

Grid-row

Grid-row property defines how many rows to span. Suppose we want to span row1 use the following line of code

.container{
            display:grid;
            grid-template-columns: auto auto auto ;
            column-gap: 10px;
            row-gap:10px;
            grid-template-rows: auto auto auto;

            height:500px;
            border:3px solid black;
        }
        .items{
            background-color: red;
        }
        .item1{
            grid-row: 1/ span 3

        }
<div class="container">
        <div class="item1 items">one</div>
        <div class="item2 items">two</div>
        <div class="item3 items">three</div>
        <div class="item4 items">four</div>
        <div class="item5 items">five</div>
        <div class="item6 items">six</div>
        <div class="item7 items">seven</div>
        <div class="item8 items">eight</div>
        <div class="item9 items">nine</div>
    </div>

Screenshot (1641).png

order

Order property rearranges the grid items inside the container. By default -1 is considered is the first order.

.container{
            display:grid;
            grid-template-columns: auto auto auto ;
            column-gap: 10px;
            row-gap:10px;
            grid-template-rows: auto auto auto;

            height:500px;
            border:3px solid black;
        }
        .items{
            background-color: red;
        }

        .item2{
            order:-1;
        }
<div class="container">
        <div class="item1 items">one</div>
        <div class="item2 items">two</div>
        <div class="item3 items">three</div>
        <div class="item4 items">four</div>
        <div class="item5 items">five</div>
        <div class="item6 items">six</div>
        <div class="item7 items">seven</div>
        <div class="item8 items">eight</div>
        <div class="item9 items">nine</div>
    </div>

Screenshot (1643).png