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 |