CSS grid

positioning layouts into rows and columns
// updated 2025-05-01 09:54

CSS grid, as its name implies, refers to positioning HTML elements into rows and columns.

CSS grid by default

By default, the display: grid works much like display: block, i.e.

.grid {
  display: grid;
}

...with an HTML of:

<div class="grid">
  <div class="card">a</div>
  <div class="card">b</div>
  <div class="card">c</div>
  <div class="card">d</div>
</div>

would simply display four "card-like" containers on top of each other like this:

[a]
[b]
[c]
[d]

CSS grid template columns

However, if we were to introduce another property into .grid called grid-template-columns we could create a layout of horizontally-aligned items with little effort:

.grid {
  display: grid;
  grid-template-columns: 100px 200px 100px 50px;
}

This would simply create a grid of four columns:

  • first column: 100px wide
  • second column: 200px wide
  • third column: 100px wide
  • fourth column: 50px wide

It would arrange horizontally-aligned like this:

[a] [b] [c] [d]

...with [b] taking up twice the space as [a] and [c], while [d] only takes half the space!

⬅️ older (in textbook-css)
🎨 CSS flex
⬅️ older (in code)
🎨 CSS flex
newer (in code) ➡️
JavaScript — an introduction 📒
⬅️ older (posts)
🎨 CSS flex
newer (posts) ➡️
JavaScript — an introduction 📒