Table of Contents
Define Named Areas in the Grid Container
Assign Grid Items to Areas
Key Rules and Tips
Responsive Layouts with grid-template-areas
Home Web Front-end CSS Tutorial How to use grid-template-areas in CSS

How to use grid-template-areas in CSS

Aug 22, 2025 am 07:56 AM
css

The grid-template-areas property allows developers to create intuitive, readable layouts by defining named grid areas; each string represents a row and each word a column cell, with grid-area names on child elements matching those in the template, such as "header header header" for a full-width header, while dots denote empty cells, names must match exactly, areas must form single rectangles, and responsive designs can reconfigure the layout via media queries, making it ideal for complex, maintainable layouts.

How to use grid-template-areas in CSS

The grid-template-areas property in CSS is a powerful and intuitive way to define the layout structure of a grid container using named areas. It makes it easier to visualize and manage complex layouts by assigning human-readable names to different sections of your grid.

Here’s how to use grid-template-areas effectively:

Define Named Areas in the Grid Container

First, assign names to grid items using the grid-area property, then map out the layout in the parent container with grid-template-areas. Each string in the property represents a row, and each word represents a column cell.

.container {
  display: grid;
  grid-template-areas:
    "header header header"
    "sidebar main main"
    "footer footer footer";
  grid-template-rows: 60px 1fr 40px;
  grid-template-columns: 200px 1fr 1fr;
}

In this example:

  • The header spans three columns.
  • The sidebar takes the first column of the second row.
  • The main area takes the second and third columns of the second row.
  • The footer spans all three columns in the last row.

Assign Grid Items to Areas

Each direct child element that should participate in the layout needs a grid-area name matching one of the names used in grid-template-areas.

.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main { grid-area: main; }
.footer { grid-area: footer; }

And the corresponding HTML:

<div class="container">
  <div class="header">Header</div>
  <div class="sidebar">Sidebar</div>
  <div class="main">Main Content</div>
  <div class="footer">Footer</div>
</div>

Key Rules and Tips

  • Use dots for empty cells: If you want an empty space in your layout, use a period (.).

    grid-template-areas:
      "header header"
      ". main"
      "footer footer";
  • Names must match exactly: The name in grid-area must exactly match the name in grid-template-areas, including case and spelling.

  • Each area must be a single rectangle: You can't have a named area split into two separate parts. For example, you can't have a sidebar that appears in both the first and third row unless it's continuous.

  • Whitespace doesn’t matter: You can format the strings for readability.

    grid-template-areas:
      "header    header    header"
      "sidebar   main      main"
      "footer    footer    footer";
  • Rows and columns are inferred: The number of strings defines the number of rows. The number of words in each string (separated by spaces) defines the number of columns.

Responsive Layouts with grid-template-areas

You can redefine the layout at different breakpoints by changing grid-template-areas in media queries.

@media (max-width: 600px) {
  .container {
    grid-template-areas:
      "header"
      "main"
      "sidebar"
      "footer";
    grid-template-columns: 1fr;
  }
}

This stacks the layout vertically on small screens, improving mobile usability.

Basically, grid-template-areas gives you a visual blueprint of your layout right in the CSS. It's especially helpful for complex designs and team collaboration because the structure is easy to read and modify. Just remember to name your items consistently and keep the grid structure rectangular.

The above is the detailed content of How to use grid-template-areas in CSS. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

PHP Tutorial
1591
276
How to change the list style in CSS How to change the list style in CSS Aug 17, 2025 am 10:04 AM

To change the CSS list style, first use list-style-type to change the bullet or numbering style. 1. Use list-style-type to set the bullet of ul to disc, circle or square, and the number of ol is decimal, lower-alpha, upper-alpha, lower-roman or upper-roman. 2. Remove the tag completely with list-style:none. 3. Use list-style-image:url('bullet.png') to replace it with a custom image. 4. Use list-style-position:in

How to create a responsive testimonial slider with CSS How to create a responsive testimonial slider with CSS Aug 12, 2025 am 09:42 AM

It is feasible to create a responsive automatic carousel slider with pure CSS, just combine HTML structure, Flexbox layout, and CSS animation. 2. First build a semantic HTML container containing multiple recommendation terms, each .item contains reference content and author information. 3. Use the parent container to set display:flex, width:300% (three slides) and apply overflow:hidden to achieve horizontal arrangement. 4. Use @keyframes to define a translateX transformation from 0% to -100%, and combine animation: scroll15slinearinfinite to achieve seamless automatic scrolling. 5. Add media

How to create a dotted border in CSS How to create a dotted border in CSS Aug 15, 2025 am 04:56 AM

Use CSS to create dotted borders, just set the border attribute to dotted. For example, "border:3pxdotted#000" can add a 3-pixel-wide black dot border to the element. By adjusting the border-width, the size of the point can be changed. The wider borders produce larger points. You can set dotted borders for a certain side, such as "border-top:2pxdottedred". Dotted borders are suitable for block-level elements such as div and input. They are often used in focus states or editable areas to improve accessibility. Pay attention to color contrast. At the same time, different from dashed's short-line style, dotted presents a circular dot shape. This feature is widely used in all mainstream browsers.

How to change the cursor in CSS How to change the cursor in CSS Aug 16, 2025 am 05:00 AM

Usebuilt-incursortypeslikepointer,help,ornot-allowedtoprovideimmediatevisualfeedbackfordifferentinteractiveelements.2.ApplycustomcursorimageswiththecursorpropertyusingaURL,optionallyspecifyingahotspotandalwaysincludingafallbacklikeautoorpointer.3.Fol

How to create a glassmorphism effect with CSS How to create a glassmorphism effect with CSS Aug 22, 2025 am 07:54 AM

To create a glass mimicry effect of CSS, you need to use backdrop-filter to achieve background blur, set a translucent background such as rgba(255,255,255,0.1), add subtle borders and shadows to enhance the sense of hierarchy, and ensure that there is enough visual content behind the elements; 1. Use backdrop-filter:blur(10px) to blur the background content; 2. Use rgba or hsla to define the transparent background to control the degree of transparency; 3. Add 1pxsolidrgba(255,255,255,0.3) borders and box-shadow to enhance the three-dimensionality; 4. Ensure that the container has rich backgrounds such as pictures or textures to present a blurred penetration effect; 5. It is compatible with old browsers

How to use CSS gradients for backgrounds How to use CSS gradients for backgrounds Aug 17, 2025 am 08:39 AM

CSSgradientsprovidesmoothcolortransitionswithoutimages.1.Lineargradientstransitioncolorsalongastraightlineusingdirectionsliketobottomorangleslike45deg,andsupportmultiplecolorstopsforcomplexeffects.2.Radialgradientsradiatefromacentralpointusingcircleo

How to use grid-template-areas in CSS How to use grid-template-areas in CSS Aug 22, 2025 am 07:56 AM

Thegrid-template-areaspropertyallowsdeveloperstocreateintuitive,readablelayoutsbydefiningnamedgridareas;eachstringrepresentsarowandeachwordacolumncell,withgrid-areanamesonchildelementsmatchingthoseinthetemplate,suchas"headerheaderheader"for

How to add a box shadow in CSS How to add a box shadow in CSS Aug 18, 2025 am 11:39 AM

To add box shadows, use box-shadow attribute; 1. The basic syntax is box-shadow: horizontal offset vertical offset blur radius expansion radius shadows in color; 2. The first three values are required, the rest are optional; 3. Use rgba() or hsla() to achieve transparent effect; 4. The positive expansion radius expands shadows and the negative value is reduced; 5. Multiple shadows can be added by commas separation; 6. Overuse should be avoided to ensure that visibility is tested on different backgrounds; this attribute is well supported by the browser, and reasonable use can improve the design texture.

See all articles