CSS Grid Layout Module

See the Pen
CSS Grid Layout Module
by Iampsp.com (@iampsp)
on CodePen.

CSS Grid Layout

The Grid Layout Module offers a grid-based layout system, with rows and columns.

The Grid Layout Module allows developers to easily create complex web layouts.

The Grid Layout Module makes it easier to design a responsive layout structure, without using float or positioning.

The CSS grid properties are supported in all modern browsers.

Grid vs. Flexbox

The CSS Grid Layout should be used for two-dimensional layout, with rows AND columns.

The CSS Flexbox Layout should be used for one-dimensional layout, with rows OR columns.

CSS Grid Components

A grid always consists of:

  • a Grid Container – the parent (container) <div> element
  • Grid Items – the items inside the container <div>

    Example

<div class="container">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
  <div>6</div>
  <div>7</div>
  <div>8</div>
</div>

Grid Container and Grid Items

A grid layout consists of a parent element (the grid container), with one or more grid items.

All direct children of the grid container automatically become grid items.

Example

<div class="container">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
</div>

See the Pen
Grid Container and Grid Items
by Iampsp.com (@iampsp)
on CodePen.

Display Grid Property

The <div> element becomes a grid container when its display property is set to grid or inline-grid.

Example

.container {   display: grid; }

Example

.container {   display: inline-grid; }

All CSS Grid Properties

Property Description
align-content Vertically aligns the whole grid inside the container (when total grid size is smaller than container)
align-items Aligns content in a grid item along the column axis
align-self Aligns the content for a specific grid item along the column axis
display Specifies the display behavior (the type of rendering box) of an element
column-gap Specifies the gap between the columns
gap A shorthand property for the row-gap and the column-gap properties
grid A shorthand property for the grid-template-rows, grid-template-columns, grid-template-areas, grid-auto-rows, grid-auto-columns, and the grid-auto-flow properties
grid-area Either specifies a name for the grid item, or this property is a shorthand property for the grid-row-start, grid-column-start, grid-row-end, and grid-column-end properties
grid-auto-columns Specifies a default column size
grid-auto-flow Specifies how auto-placed items are inserted in the grid
grid-auto-rows Specifies a default row size
grid-column A shorthand property for the grid-column-start and the grid-column-end properties
grid-column-end Specifies where to end the grid item
grid-column-start Specifies where to start the grid item
grid-row A shorthand property for the grid-row-start and the grid-row-end properties
grid-row-end Specifies where to end the grid item
grid-row-start Specifies where to start the grid item
grid-template A shorthand property for the grid-template-rows, grid-template-columns and grid-areas properties
grid-template-areas Specifies how to display columns and rows, using named grid items
grid-template-columns Specifies the size of the columns, and how many columns in a grid layout
grid-template-rows Specifies the size of the rows in a grid layout
justify-content Horizontally aligns the whole grid inside the container (when total grid size is smaller than container)
justify-self Aligns the content for a specific grid item along the row axis
place-self A shorthand property for the align-self and the justify-self properties
place-content A shorthand property for the align-content and the justify-content properties
row-gap Specifies the gap between the grid rows