CSS Grid is a tool for two-dimensional layout of web pages. After creating a container with display: grid, use grid-template-columns and grid-template-rows to define rows and columns; 1. Use fr units or fixed values ??to set the size; 2. Use gap to control spacing, justify-items and align-items to control alignment; 3. Specify the starting line position of the child item through grid-column and grid-row; 4. Use repeat() to simplify repeated structure definitions; 5. Use grid-area to implement named area template layout.
CSS Grid is a powerful tool for modern web layout, especially suitable for two-dimensional grid structures. It is not only good at single-directional arrangement like Flexbox, but it can handle rows and columns at the same time, giving you more flexibility in controlling page structure.

Basic syntax: define a grid container
To use CSS Grid, you must first set display: grid;
on the container. This step is the basis. If this attribute is not added, the subsequent grid settings will not work.

Then you can use grid-template-columns
and grid-template-rows
to define the number and size of columns and rows. for example:
.container { display: grid; grid-template-columns: 1fr 2fr 1fr; }
The above code will create three columns, the middle column is twice as wide as the left and right columns. The fr
unit is a feature of Grid, indicating "the proportion of available space".

You can also use a mix of fixed values ??(such as 200px
) and proportional units:
grid-template-columns: 200px 1fr 2fr;
Control spacing and alignment
The gap between grids can be set using the gap
attribute, which can set the spacing between rows and columns at the same time, such as:
gap: 20px 30px;
Equivalent to:
row-gap: 20px; column-gap: 30px;
In terms of alignment, Grid provides justify-items
and align-items
to control the alignment of child elements within cells. For example:
-
justify-items: center;
let all children center horizontally -
align-items: start;
let them align the top
If you just want to control the location of a child separately, you can use justify-self
or align-self
.
Use grid-line to name or number content
You can precisely control the position of the child by specifying which line it starts from and which line it ends. for example:
.item { grid-column: 2 / 4; grid-row: 1 / 2; }
The meaning of this code is: this element starts from the second vertical line and spans to the fourth line; it is displayed on the first line.
You can also name these lines, which makes it more intuitive to write:
grid-template-columns: [col1-start] 1fr [col2-start] 1fr [col2-end];
Then when positioning, you can write it like this:
grid-column: col1-start / col2-end;
Several Tips to Simplify Complex Layouts
Use
repeat()
to simplify the repeat structure
If there are multiple columns of the same width, you do not need to write them one by one:grid-template-columns: repeat(3, 1fr);
Automatically adjust the number of columns and adapt to container width
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
This combination is very practical and is especially suitable for responsive designs.
Quickly layout templates with
grid-area
You can directly name each region and define the template structure in the container:.container { display: grid; grid-template-areas: "header header" "sidebar main" "footer footer"; }
Then, just add the corresponding
grid-area: header;
for each child to automatically return.
Basically, that’s all. By mastering these basic concepts and common techniques, you can easily make various complex grid layouts.
The above is the detailed content of Creating grid layouts with css grid. 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)

Hot Topics

There are three ways to selectively include CSS on a specific page: 1. Inline CSS, suitable for pages that are not frequently accessed or require unique styles; 2. Load external CSS files using JavaScript conditions, suitable for situations where flexibility is required; 3. Containment on the server side, suitable for scenarios using server-side languages. This approach can optimize website performance and maintainability, but requires balance of modularity and performance.

Flexboxisidealforone-dimensionallayouts,whileGridsuitstwo-dimensional,complexlayouts.UseFlexboxforaligningitemsinasingleaxisandGridforprecisecontroloverrowsandcolumnsinintricatedesigns.

The HTML popover attribute transforms elements into top-layer elements that can be opened and closed with a button or JavaScript. Popovers can be dismissed a number of ways, but there is no option to auto-close them. Preethi has a technique you can u

CSS blocks page rendering because browsers view inline and external CSS as key resources by default, especially with imported stylesheets, header large amounts of inline CSS, and unoptimized media query styles. 1. Extract critical CSS and embed it into HTML; 2. Delay loading non-critical CSS through JavaScript; 3. Use media attributes to optimize loading such as print styles; 4. Compress and merge CSS to reduce requests. It is recommended to use tools to extract key CSS, combine rel="preload" asynchronous loading, and use media delayed loading reasonably to avoid excessive splitting and complex script control.

In the following tutorial, I will show you how to create Lottie animations in Figma. We'll use two colorful designs to exmplify how you can animate in Figma, and then I'll show you how to go from Figma to Lottie animations. All you need is a free Fig

We put it to the test and it turns out Sass can replace JavaScript, at least when it comes to low-level logic and puzzle behavior. With nothing but maps, mixins, functions, and a whole lot of math, we managed to bring our Tangram puzzle to life, no J

ThebestapproachforCSSdependsontheproject'sspecificneeds.Forlargerprojects,externalCSSisbetterduetomaintainabilityandreusability;forsmallerprojectsorsingle-pageapplications,internalCSSmightbemoresuitable.It'scrucialtobalanceprojectsize,performanceneed

No,CSSdoesnothavetobeinlowercase.However,usinglowercaseisrecommendedfor:1)Consistencyandreadability,2)Avoidingerrorsinrelatedtechnologies,3)Potentialperformancebenefits,and4)Improvedcollaborationwithinteams.
