HTML & CSS - Mastery / CSS Grid System

Grid Template Areas (Part 2)

🛠 Real-World Use

Named areas shine in layouts like:

  • Web page templates (header, sidebar, content, footer)

  • Dashboards

  • Responsive sections

They make the layout self-explanatory — no need to remember grid line numbers.


🧱 Simplified Layout Example

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: sans-serif;
  height: 100vh; /* Ensures body fills viewport */
}

.grid {
  display: grid;
  height: 100vh; /* Full page height */
  grid-template-columns: 1fr 3fr 1fr;
  grid-template-rows: auto 1fr auto;
  grid-template-areas:
    "header header header"
    "nav main aside"
    "footer footer footer";
  gap: 10px;
  padding: 20px;
}

header {
  grid-area: header;
  background-color: #4a90e2;
  color: white;
  padding: 20px;
  text-align: center;
}

nav {
  grid-area: nav;
  background-color: #f39c12;
  padding: 20px;
}

main {
  grid-area: main;
  background-color: #ecf0f1;
  padding: 20px;
  overflow-y: auto; /* Scrolls if content grows */
}

aside {
  grid-area: aside;
  background-color: #e74c3c;
  color: white;
  padding: 20px;
}

footer {
  grid-area: footer;
  background-color: #2c3e50;
  color: white;
  text-align: center;
  padding: 20px;
}

💡 Why Use Area Names?

Without Names

With Names

grid-column: 1 / 3;

grid-area: header;

Hard to visualize layout

Easy to see the structure

Tedious to update

Simple to modify later


Combine with media queries to rearrange layout responsively just by changing the grid-template-areas.