Open In App

CSS Grid Layout Module

Last Updated : 09 Jan, 2025
Summarize
Comments
Improve
Suggest changes
Like Article
Like
Share
Report
News Follow

CSS Grid Layout is used to design responsive web layouts with rows and columns. It allows you to place items exactly where you want, making it easier to create flexible and modern web pages.

Unlike older methods like floats, CSS Grid gives more control over alignment and adapts well to different screen sizes.

Currently Active Property

grid-template-columns: auto; 

Syntax

.class {
display:grid;
}

Note: You can also use display: inline-grid; to make an element an inline grid.

<html>
<head>
    <style>
        .grid-container {
            display: grid;
            grid-template-columns: auto auto;
            gap: 10px;
        }
    </style>
</head>
<body>
    <div class="grid-container">
        <div class="grid-item">Item 1</div>
        <div class="grid-item">Item 2</div>
        <div class="grid-item">Item 3</div>
        <div class="grid-item">Item 4</div>
    </div>
</body>
</html>
  • The .grid-container uses display: grid; to define a grid layout with two columns (grid-template-columns: auto auto;) and a 10px gap between items.

CSS Grid Layout Properties

Below is a list of key CSS Grid properties with descriptions:

Property

Description

column-gap

Defines the amount of space between columns in a multi-column layout, often used with column-count in CSS Grid.

gap

Specifies the spacing (also called gutter) between rows and columns in CSS Grid and Flexbox layouts.

grid

A grid-based layout system in CSS that provides rows and columns, simplifying the design without using floats or positioning.

grid-area

IDefines the size and location of a grid item within a CSS grid layout by specifying the start and end lines.

grid-auto-columns

Sets the size of columns that are automatically generated in a CSS Grid layout when more content is added.

grid-auto-flow

It specifies exactly how auto-placed items get flow into the grid.

grid-auto-rows

It is used to specify the size for the rows of implicitly generated grid containers.

grid-column

It describes the number of properties that allow to design of grid structures and control the placement of grid items using CSS.

grid-column-end

It explains the number of columns an item will span, or on which column-line the item will end.

grid-column-gap

It is used to set the size of the gap between the columns in a grid layout.

grid-column-start

It defines for which column line item will start.

grid-gap

It is used to sets the size of the gap between the rows and columns in a grid layout.

grid-row

It is used to specify the size and location in a grid layout.

grid-row-end

It is used to define the grid item’s end position within a grid row by specifying the inline edge of its grid area.

grid-row-gap

It is used to define the size of the gap between the grid elements.

grid-row-start

It is used to define the grid items’ start position within the grid row by specifying the inline start edge of its grid area.

grid-template

It is a shorthand property for defining grid columns, rows, and areas.

grid-template-areas

It is used to specify the area within the grid layout.

grid-template-columns

It is used to set the number of columns and size of the columns of the grid.

grid-template-rows

It is used to set the number of rows and height of the rows in a grid.

More Examples of CSS Grid Layout Module

Three-Column Layout

<html>
<head>
    <style>
        .grid-container {
            display: grid;
            grid-template-columns: 1fr 1fr 1fr;
            gap: 10px;
        }
        .grid-item {
            background-color: #f0f0f0;
            padding: 20px;
            text-align: center;
        }
    </style>
</head>
<body>
    <div class="grid-container">
        <div class="grid-item">Column 1</div>
        <div class="grid-item">Column 2</div>
        <div class="grid-item">Column 3</div>
    </div>
</body>
</html>


In this example:

  • The .grid-container is set to display as a grid with three equal-width columns (1fr each) and a 10px gap between them.
  • Each .grid-item represents a column with basic styling for clarity.

Responsive Two-Row Layout

<html>
<head>
    <style>
        .grid-container {
            display: grid;
            grid-template-rows: auto auto;
            gap: 15px;
        }

        .grid-item {
            background-color: #e0e0e0;
            padding: 15px;
            text-align: center;
        }
    </style>
</head>
<body>
    <div class="grid-container">
        <div class="grid-item">Row 1</div>
        <div class="grid-item">Row 2</div>
    </div>
</body>
</html>

In this example:

  • The .grid-container is defined as a grid with two rows (auto height) and a 15px gap between them.
  • Each .grid-item represents a row with minimal styling for demonstration.

Four-Item Grid with Unequal Column Widths

<html>
<head>
    <style>
        .grid-container {
            display: grid;
            grid-template-columns: 1fr 2fr;
            gap: 10px;
        }

        .grid-item {
            background-color: #f0f0f0;
            padding: 20px;
            text-align: center;
        }
    </style>
</head>
<body>
    <div class="grid-container">
        <div class="grid-item">Item 1</div>
        <div class="grid-item">Item 2</div>
        <div class="grid-item">Item 3</div>
        <div class="grid-item">Item 4</div>
    </div>
</body>
</html>

In this example:

  • The .grid-container is defined as a grid with two columns, where the first column takes up one fraction (1fr) of the available space, and the second column takes up two fractions (2fr), creating unequal column widths.
  • Each .grid-item represents a grid cell with minimal styling for demonstration purposes.

Best Practices for CSS Grid Layout

  • Use Flexible Units: Utilize flexible units like fr and minmax() to create responsive layouts that adapt to various screen sizes.
  • Define Explicit Grid Areas: Clearly specify grid areas using grid-template-areas for better readability and maintainability of your code.
  • Combine with Other Layout Methods: Integrate CSS Grid with Flexbox to leverage the strengths of both and achieve complex, responsive design

CSS Grid Layout Module – FAQs

What is CSS Grid Layout?

CSS Grid Layout is a system that uses rows and columns to create complex, responsive web layouts without floats or positioning.

How do you create a basic grid?

Set display: grid; on a container and define columns and rows with grid-template-columns and grid-template-rows.

What are grid lines?

Grid lines are the dividers that define the boundaries of rows and columns in a grid, used to place items precisely.

Is CSS Grid good for responsive design?

Yes, it adapts layouts to different screen sizes using media queries, fractional units (fr), and the minmax() function.

When to use CSS Grid vs. Flexbox?

Use CSS Grid for two-dimensional layouts (rows and columns) and Flexbox for one-dimensional layouts (row or column).

What does the fr unit do?

The fr unit allocates space within the grid container, proportionally distributing space among grid items.



Next Article
Article Tags :

Similar Reads

three90RightbarBannerImg