CSS Grid Container
1
2
3
4
5
6
7
8
Grid Container
A grid layout consists of a parent element (the grid container), with one or more child elements (grid items).
An HTML element becomes a grid container when its display
property
is set to
grid
or inline-grid
.
Grid Tracks
The rows and columns of a grid is defined with the grid-template-rows
and the grid-template-columns
properties (or
the shorthand grid
or grid-template
properties).
These define the grid tracks. A grid track is the space between two grid lines.
The grid-template-columns Property
The grid-template-columns
property defines the
number of columns in your grid layout, and it can define the width of each column.
The value is a space-separated-list, where each value defines the width of the respective column.
If you want your grid layout to contain 4 columns, specify the width of the 4 columns, or "auto" if all columns should have the same width.
Example
Make a grid with 4 columns:
.grid-container {
display: grid;
grid-template-columns: auto auto auto auto;
}
Note: If you have more than 4 grid items in a 4 columns grid, the grid will automatically add a new row to put the items in.
The grid-template-columns
property can also be used to specify the
exact size (width) of the columns, or a mix of fixed size and auto.
Example
Set a fixed size for column 1, 2, and 4, and keep column 3 as auto size:
.grid-container {
display: grid;
grid-template-columns: 80px 200px auto 40px;
}
The grid-template-rows Property
The grid-template-rows
property defines the height of each row.
1
2
3
4
5
6
7
8
The value is a space-separated-list, where each value defines the height of the respective row:
The justify-content Property
The justify-content
property is used to align the whole grid inside the container.
1
2
3
4
5
6
Note: The grid's total width has to be less than the container's width for the justify-content
property to have any effect.
The align-content Property
The align-content
property is used to
vertically align the whole grid inside the container.
1
2
3
4
5
6
Note: The grid's total height has to be less than the container's height for the align-content
property to have any effect.
Example
.grid-container {
display: grid;
height: 400px;
align-content: space-evenly;
}
Example
.grid-container {
display: grid;
height: 400px;
align-content: space-around;
}
Example
.grid-container {
display: grid;
height: 400px;
align-content: space-between;
}
CSS Grid Container 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 |
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-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-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) |
row-gap | Specifies the gap between the grid rows |