CSS Grid 布局学习笔记

server/2025/2/22 14:27:59/

1. 概述

CSS Grid 布局是一个强大的二维布局系统,它可以在网页上创建复杂的布局。Grid 布局允许你在水平和垂直方向上设计网页布局。

2. 基本概念

2.1 网格容器(Grid Container)

使用 display: grid;display: inline-grid; 将一个元素定义为网格容器。

css">.grid-container {display: grid;
}

2.2 网格项(Grid Item)

网格容器的子元素自动成为网格项。

<div class="grid-container"><div class="grid-item">1</div><div class="grid-item">2</div><div class="grid-item">3</div>
</div>

3. 定义网格

3.1 网格轨道(Grid Tracks)

网格轨道包含网格列和网格行。使用 grid-template-columnsgrid-template-rows 定义网格轨道。

css">.grid-container {display: grid;grid-template-columns: 100px 100px 100px; /* 定义三列,每列宽度为100px */grid-template-rows: 50px 50px; /* 定义两行,每行高度为50px */
}

3.2 网格线(Grid Lines)

网格线是网格轨道之间的分隔线。网格线从 1 开始编号。

3.3 网格区域(Grid Areas)

网格区域是由四个网格线围成的区域。使用 grid-template-areas 定义命名网格区域。

css">.grid-container {display: grid;grid-template-columns: 100px 100px 100px;grid-template-rows: 50px 50px;grid-template-areas: "header header header""content content sidebar";
}
.grid-item.header { grid-area: header; }
.grid-item.content { grid-area: content; }
.grid-item.sidebar { grid-area: sidebar; }

4. 网格项的放置

4.1 使用行号和列号放置网格项

使用 grid-column-startgrid-column-endgrid-row-startgrid-row-end 放置网格项。

css">.grid-item {grid-column-start: 1;grid-column-end: 3;grid-row-start: 1;grid-row-end: 2;
}

4.2 使用简写属性放置网格项

使用 grid-columngrid-row 简写属性。

css">.grid-item {grid-column: 1 / 3; /* 从第1列开始,到第3列结束 */grid-row: 1 / 2; /* 从第1行开始,到第2行结束 */
}

4.3 使用命名网格区域放置网格项

使用 grid-area 属性放置命名网格区域的网格项。

css">.grid-item {grid-area: header;
}

5. 网格间隙(Grid Gaps)

使用 grid-gapgrid-row-gapgrid-column-gap 定义网格项之间的间隙。

css">.grid-container {display: grid;grid-template-columns: 100px 100px 100px;grid-template-rows: 50px 50px;grid-gap: 10px; /* 行间隙和列间隙都为10px */grid-row-gap: 15px; /* 行间隙为15px */grid-column-gap: 20px; /* 列间隙为20px */
}

6. 网格对齐

6.1 对齐网格容器

使用 justify-itemsalign-itemsplace-items 对齐网格容器内的网格项。

css">.grid-container {display: grid;justify-items: center; /* 水平方向居中对齐 */align-items: center; /* 垂直方向居中对齐 */place-items: center; /* 水平和垂直方向居中对齐 */
}

6.2 对齐网格项

使用 justify-selfalign-selfplace-self 对齐单个网格项。

css">.grid-item {justify-self: center; /* 水平方向居中对齐 */align-self: center; /* 垂直方向居中对齐 */place-self: center; /* 水平和垂直方向居中对齐 */
}

7. 示例代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS Grid Layout Example</title>
<style>css">.grid-container {display: grid;grid-template-columns: 100px 100px 100px;grid-template-rows: 50px 50px;grid-template-areas: "header header header""content content sidebar";grid-gap: 10px;}.grid-item {background-color: #ccc;padding: 10px;border: 1px solid #000;}.header { grid-area: header; background-color: #f3c; }.content { grid-area: content; background-color: #fc3; }.sidebar { grid-area: sidebar; background-color: #3cf; }
</style>
</head>
<body><div class="grid-container"><div class="grid-item header">Header</div><div class="grid-item content">Content</div><div class="grid-item sidebar">Sidebar</div>
</div></body>
</html>

8. 参考文献

  • MDN Web Docs: CSS Grid Layout
  • W3C CSS Grid Layout Module Level 1

http://www.ppmy.cn/server/169860.html

相关文章

MATLAB在数据分析和绘图中的应用:从基础到实践

引言 股票数据分析是金融领域中的重要研究方向&#xff0c;通过对历史价格、成交量等数据的分析&#xff0c;可以帮助投资者更好地理解市场趋势和做出决策。MATLAB作为一种强大的科学计算工具&#xff0c;提供了丰富的数据处理和可视化功能&#xff0c;非常适合用于股票数据的…

一周学会Flask3 Python Web开发-客户端状态信息Cookie以及加密

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili HTTP是无状态&#xff08;stateless)协议。也就是说&#xff0c;在一次请求响应结束后&#xff0c;服务器不会留下任何关于对…

【Linux】命名管道------Linux进程间通信的桥梁

目录 一、什么是命名管道&#xff1a; 二、在代码中的命名管道&#xff1a; 三、打印日志&#xff1a; 1、封装管理管道&#xff1a; 2、日志文件的建立&#xff1a; 日志时间&#xff1a; 日志级别&#xff1a; 日志打印方式&#xff1a; 日志类构造与析构&#xff1…

游戏引擎学习第115天

仓库:https://gitee.com/mrxiao_com/2d_game_3 打开程序&#xff0c;查看我们在性能方面的进展 这段内容主要介绍了优化代码以利用处理器中的SIMD&#xff08;单指令多数据&#xff09;向量单元的基本概念。具体流程如下&#xff1a; 讲解了SIMD的基本原理&#xff0c;如何通…

视频HDR技术详解,你的电脑怎么播放HDR视频?

闲聊&#xff1a;前两天在b站上面看到影视飓风的视频&#xff0c;让我有点疑惑&#xff0c;我不知道为什么播放视频有设备撑不住一说&#xff0c;所以感兴趣去ytb下载了4k原片30hz刷新的&#xff0c;然后测试一下我的电脑能不能播放&#xff0c;发现还是可以的&#xff0c;视觉…

基于Spring Boot的农事管理系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

Java 大视界 -- 深度洞察 Java 大数据安全多方计算的前沿趋势与应用革新(52)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

C语言之枚举类型

目录 前言 一、enum&#xff08;枚举 总结 前言 在C语言中&#xff0c;枚举类型是一种用户自定义的数据类型&#xff0c;用于定义一组具名的常量集合。枚举类型可以提高代码的可读性和可维护性&#xff0c;同时也能够帮助程序员避免使用魔法数字。通过枚举类型&#xff0c;我们…