How to use grid-template-areas in 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.
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 ingrid-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!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

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

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

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

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

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.

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

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

CSSgradientsprovidesmoothcolortransitionswithoutimages.1.Lineargradientstransitioncolorsalongastraightlineusingdirectionsliketobottomorangleslike45deg,andsupportmultiplecolorstopsforcomplexeffects.2.Radialgradientsradiatefromacentralpointusingcircleo

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

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.
