The grid-template-areas CSS property specifies named grid areas, establishing the cells in the grid and assigning them names.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Those areas are not associated with any particular grid item, but can be referenced from the grid-placement properties grid-row-start, grid-row-end, grid-column-start, grid-column-end, and their shorthands grid-row, grid-column, and grid-area.
Syntax
/* Keyword value */
grid-template-areas: none;
/* <string> values */
grid-template-areas: "a b";
grid-template-areas: "a b b"
"a c d";
/* Global values */
grid-template-areas: inherit;
grid-template-areas: initial;
grid-template-areas: unset;
Values
none- The grid container doesn’t define any named grid areas.
<string>+- A row is created for every separate string listed, and a column is created for each cell in the string. Multiple named cell tokens within and between rows create a single named grid area that spans the corresponding grid cells. Unless those cells form a rectangle, the declaration is invalid.
Formal definition
| Initial value | none
|
| Applies to | grid containers |
| Inherited | no |
| Computed value | as specified |
| Animation type | discrete |
Formal syntax
none | <string>+
Examples
Specifying named grid areas
HTML
<section id="page">
<header>Header</header>
<nav>Navigation</nav>
<main>Main area</main>
<footer>Footer</footer>
</section>
CSS
#page {
display: grid;
width: 100%;
height: 250px;
grid-template-areas: "head head"
"nav main"
"nav foot";
grid-template-rows: 50px 1fr 30px;
grid-template-columns: 150px 1fr;
}
#page > header {
grid-area: head;
background-color: #8ca0ff;
}
#page > nav {
grid-area: nav;
background-color: #ffa08c;
}
#page > main {
grid-area: main;
background-color: #ffff64;
}
#page > footer {
grid-area: foot;
background-color: #8cffa0;
}
Result
Specifications
| Specification | Status | Comment |
|---|---|---|
| CSS Grid LayoutThe definition of 'grid-template-areas' in that specification. | Candidate Recommendation | Initial definition |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
grid-template-areas
|
Chrome Full support 57 Full support 57 Full support 29 Disabled' From version 29: this feature is behind the |
Edge
Full support 16 |
Firefox Full support 52 Full support 52 No support 40 — 59 Disabled' From version 40 until version 59 (exclusive): this feature is behind the |
IE
No support No |
Opera Full support 44 Full support 44 Full support 28 Disabled' From version 28: this feature is behind the |
Safari
Full support 10.1 |
WebView Android
Full support 57 |
Chrome Android Full support 57 Full support 57 Full support 29 Disabled' From version 29: this feature is behind the |
Firefox Android Full support 52 Full support 52 No support 40 — 59 Disabled' From version 40 until version 59 (exclusive): this feature is behind the |
Opera Android Full support 43 Full support 43 Full support 28 Disabled' From version 28: this feature is behind the |
Safari iOS
Full support 10.3 |
Samsung Internet Android
Full support 6.0 |
Legend
- Full support
- Full support
- No support
- No support
- User must explicitly enable this feature.'
- User must explicitly enable this feature.
See also
- Related CSS properties:
grid-template-rows,grid-template-columns,grid-template - Grid Layout Guide: Grid template areas
- Video tutorial: Grid Template Areas
grid-template-areas by Mozilla Contributors is licensed under CC-BY-SA 2.5.