CSS Grid

DevwaresDevwares
2 min read

CSS Grid

CSS Grid is a powerful layout system available in CSS. It is a 2-dimensional system, meaning it can handle both columns and rows, unlike flexbox which is largely a 1-dimensional system.

CSS Grid

Basic Terminology

Before diving into the details of CSS Grid, it's important to understand some basic terminology:

  • Grid Container: The element on which display: grid is applied. It's the direct parent of all the grid items. In our example we’ll be referring to .container as our grid container.

  • Grid Item: The children (direct descendants) of the grid container.

  • Grid Line: The dividing lines that make up the structure of the grid. They can be either vertical ("column grid lines") or horizontal ("row grid lines").

  • Grid Cell: A single unit of the grid.

  • Grid Track: The space between two adjacent grid lines. This can be a row or a column.

  • Grid Area: Any area of the grid bound by four grid lines.

Contrast Bootstrap UI Kit

Basic Grid Structure

To get started with CSS Grid, we need to define a grid container. We do this by using the display property with the value of grid.

.container {
  display: grid;
}

Defining Columns and Rows

Inside the grid container, you define your columns and rows. You can do this using grid-template-columns and grid-template-rows.

.container {
  display: grid;
  grid-template-columns: 200px 400px auto;
  grid-template-rows: auto 100px;
}

In this example, the grid will have three columns; the first will be 200px wide, the second 400px, and the third will automatically take up the remaining space. For the rows, the first row's height will be as large as its content, and the second row will be 100px.

Grid Gaps

To create some space between your grid items, you can use grid-gap, grid-row-gap, and grid-column-gap.

.container {
  display: grid;
  grid-template-columns: 200px 400px auto;
  grid-template-rows: auto 100px;
  grid-gap: 20px;
}

Grid Auto Flow

The grid-auto-flow property controls how the auto placement algorithm works. It specifies exactly how auto-placed items get flowed into the grid.

.container {
  display: grid;
  grid-template-columns: 200px 400px auto;
  grid-template-rows: auto 100px;
  grid-gap: 20px;
  grid-auto-flow: row;
}

In this example, the grid items will be placed from left to right across the rows. If you set grid-auto-flow to column, the items would be placed from top to bottom down the columns.

Contrast Bootstrap UI Kit

0
Subscribe to my newsletter

Read articles from Devwares directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Devwares
Devwares