Grid Layout
CSS Grid is a two-dimensional layout system that allows you to create
complex and responsive web designs with rows and columns. Unlike Flexbox, which
is mainly for one-dimensional layouts (either row or column), Grid gives you
full control over both dimensions, making it ideal for building entire page
layouts or complex components.
Why Use CSS Grid?
·
Create grid-based layouts
easily without relying on floats or positioning hacks.
·
Control rows and columns
simultaneously.
·
Align and space content
precisely.
·
Build responsive designs
that adapt to different screen sizes.
·
Define explicit grid areas
for easier management.
How CSS Grid Works
To start using Grid, you set the container’s display
property to grid
or inline-grid
:
.container {
display: grid;
}
This turns the container into a grid container,
and its children become grid items.
Main Concepts and Properties
·
grid-template-columns / grid-template-rows
Define the number and size of columns and rows. Example:
grid-template-columns:
200px
1fr
2fr;
grid-template-rows:
100px auto;
This creates three
columns (fixed 200px, flexible 1 fraction unit, and double flexible 2 fraction
units) and two rows (fixed 100px and auto height).
·
grid-gap (or gap)
Adds spacing between rows and columns.
·
grid-column-start / grid-column-end & grid-row-start /
grid-row-end
Control where an item starts and ends within the grid.
·
grid-area
A shorthand to specify the grid item's position in rows and columns.
·
justify-items / align-items
Control the alignment of items inside their grid cells horizontally and
vertically.
·
justify-content / align-content
Align the entire grid within the container.
Example
.container {
display: grid;
grid-template-columns:
repeat(
3,
1fr);
grid-gap:
10px;
}
.item1 {
grid-column:
1 /
3;
/* spans two columns */
grid-row:
1;
}
This creates a three-column grid with equal
widths and a 10px gap between grid items. The first item spans the first two
columns.