CSS Grid Layout
CSS Grid Layout Module
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 easy to design a responsive layout structure,
without using
float or positioning.
My Header
Lorem Ipsum
Lorem ipsum odor amet, consectetuer adipiscing elit. Ridiculus sit nisl laoreet facilisis aliquet. Potenti dignissim litora eget montes rhoncus sapien neque urna. Cursus libero sapien integer magnis ligula lobortis quam ut.
Footer
Grid vs. Flexbox
CSS Grid is used for two-dimensional layout, with rows AND columns.
CSS Flexbox is used for one-dimensional layout, with rows OR columns.
CSS Grid Components
A grid always consists of:
- A Grid Container - The parent (container) element, where the
displayproperty is set togridorinline-grid - One or more Grid Items - The direct children of the grid container automatically becomes grid items
A Grid Container with Five Grid Items
The element below represents a grid container (the blue area) with five grid items.
Example
A grid container with five grid items:
<head>
<style>
.container {
display: grid;
grid-template-columns: auto auto auto;
background-color: dodgerblue;
padding: 10px;
}
.container div {
background-color: #f1f1f1;
border: 1px solid black;
padding: 10px;
font-size: 30px;
text-align: center;
}
</style>
</head>
<body>
<div class="container">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
</body>
</html>
Note: You will learn more about grid containers and grid items in the next chapters.
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 | Specifies the default alignment for items inside a flexbox or grid container |
| 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 |