news 2026/10/17 5:34:06

grid 布局

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
grid 布局

grid布局含义:

grid布局,也被称之为网格布局,是将页面中的父元素划分成一个个小的格子,然后通过这些小的格子进行合并来制作出各种不同的网站效果.(如下图所示)

如何触发网格呢:

给父元素添加display属性,并且将取值设置成:grid/inline-grid.

grid:

代表的是块状网格,默认独占一行,类似于块级元素.

inline-grid:

代表的是行内块网格,与行内块元素类似

触发网格有哪些特点?

划分行列之后,才能将里面的区域进行划分,才能显示网格,才能进行合并

grid布局与flex布局异同,网格与表格区别?

grid与flex布局:

相同点:

都有容器和项目之分;

不同点:

flex被称之为一维布局,也叫做轴线布局;

grid被称之为二维布局,有行列之分


grid与表格:

相同点:

都有行列之分,都能划分格子;

不同点:

表格嵌套的级别比较深

grid通过容器和项目完成布局

划分行列属性

行属性: grid-template-rows:

列属性: grid-template-columns

重点我们研究的是他们的取值

注意事项:后面跟几组值,就代表了几行几列

取值1:纯数值

{

grid-template-rows:100px 100px 100px;

grid-template-columns:100px 100px 100px;

}


代表的是:
1)划分一个3行3列的网格
2)每一行行高:100px;
3)每一列列宽:100px;

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> .box { margin: 100px auto; width: 500px; height: 500px; border: 10px solid gray; display: grid; grid-template-rows: 100px 100px 100px; grid-template-columns: 100px 100px 100px; } </style> </head> <body> <div class="box"></div> </body> </html>

取值2:百分比

{

grid-template-rows:20% 30% 50%;

grid-template-columns:100px 100px 100px;

}

代表的是:
1)划分一个3行3列的网格;

2)每一行行高:分别是总高的:20% 30% 50%;
3)每一列列宽:100px;

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> .box { margin: 100px auto; width: 500px; height: 500px; border: 10px solid gray; display: grid; grid-template-rows: 20% 30% 50%; grid-template-columns: 100px 100px 100px; } </style> </head> <body> <div class="box"></div> </body> </html>

取值3:重复函数

重复函数:使用的是 repeat(num1,num2)函数

两个参数
参数1: 重复次数
参数2: 需要重复的数值

{

grid-template-rows:repeat(3,100px);

grid-template-columns:repeat(5,20%);

}

代表的是:
1)划分一个3行5列的网格;

2)每一行行高:100px;

3)每一列列宽:均占总宽度的20%;

4)注意:repeat函数,第一个参数是重复的次数,第二个参数为需要重复的数值

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> .box { margin: 100px auto; width: 500px; height: 500px; border: 10px solid gray; display: grid; grid-template-rows: repeat(3, 100px); grid-template-columns: repeat(5, 20%); } </style> </head> <body> <div class="box"></div> </body> </html>

取值4:自动填充

自动填充:auto-fill

应用在重复函数中,代表的是根据需要重复的数值,进行自动填充数量;(例如:以列宽为例子)

{

grid-template-rows:repeat(3,100px);

grid-template-columns:repeat(auto-fill,30%);

}

备注:在这里auto-fill会将列数宽度按照30%的宽度进行划分;盛放不下的话则不再划分列数

{

grid-template-rows:repeat(3,100px);

grid-template-columns:repeat(auto-fill,20%);

}
备注:在这里auto-fill会将列数宽度按照20%的宽度进行划分;盛放不下的话则不再划分列数

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> .box { margin: 100px auto; width: 500px; height: 500px; border: 10px solid gray; display: grid; grid-template-rows: repeat(3, 100px); grid-template-columns: repeat(auto-fill, 30%); } </style> </head> <body> <div class="box"></div> </body> </html>

取值5:auto自动

auto自动代表的是,占剩余宽度和剩余高度的所有,如下图所示

{

grid-template-rows:100px auto 100px;

grid-template-columns:auto 100px 100px;

}

代码的含义是:
设置一个3行3列的网格第1,3行固定高度100px;

第2行高度自适应第2,3列固定宽度100px; 第1列宽度自适应;

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> .box { margin: 100px auto; width: 500px; height: 500px; border: 10px solid gray; display: grid; grid-template-rows: 100px auto 100px; grid-template-columns: auto 100px 100px; } </style> </head> <body> <div class="box"></div> </body> </html>

取值6:fr片段划分

片段划分: 为了方便表示比例关系,网格布局提供了fr关键字(fraction 的缩写,意为“片段")

如果两列的宽度分别为1fr和2fr,就表示后者是前者的两倍

{

grid-template-rows:1fr 2fr 3fr;

grid-template-columns:100px 100px 100px;

}

代码含义:
划分3行3列的网格

其中行高总共划分成6份,

第1行占1/6:

第2行占2/6

第3行占3/6

每一列的宽度为:100px

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> .box { margin: 100px auto; width: 500px; height: 500px; border: 10px solid gray; display: grid; grid-template-rows: 1fr 2fr 3fr; grid-template-columns: 100px 100px 100px; } </style> </head> <body> <div class="box"></div> </body> </html>

取值7:minmax()

minmax(num1,num2)函数,可以理解成最小最大值函数,

函数中两个参数:

参数1代表的是最小值,

参数2代表的是最大值

如果条件允许,则一直使用最大值,

如果条件不满足则使用中间值,

如果剩下的距离不足以显示距离大小,则使用最小值

{

grid-template-rows:100px 100px minmax(100px,200px);

grid-template-columns:100px 100px 100px;

}

{

grid-template-rows:200px 200px minmax(100px,200px);

grid-template-columns:100px 100px 100px;

}

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> .box { margin: 100px auto; width: 500px; height: 500px; border: 10px solid gray; display: grid; grid-template-rows: 100px 100px minmax(100px, 200px); grid-template-columns: 100px 100px 100px; } </style> </head> <body> <div class="box"></div> </body> </html>

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> .box { margin: 100px auto; width: 500px; height: 500px; border: 10px solid gray; display: grid; grid-template-rows: 200px 200px minmax(100px, 200px); grid-template-columns: 100px 100px 100px; } </style> </head> <body> <div class="box"></div> </body> </html>

1

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/16 16:59:32

数据点的“社交距离”:衡量它们之间的相似与差异

数据分析的世界里&#xff0c; “距离” 不仅仅是地图上两点之间的路程。距离 &#xff0c;本质上是衡量两个事物 “相似度” 的尺子。距离越近 相似度越高距离越远 差异越大如果你想做用户画像聚类、想做商品推荐系统&#xff0c;或者想识别信用卡欺诈交易&#xff0c;你首先…

作者头像 李华
网站建设 2026/10/17 2:10:20

论文格式魔法全书:用Word通配符和宏一键完成专业排版

论文格式魔法全书&#xff1a;用Word通配符和宏一键完成专业排版当你面对杂乱格式的论文文档&#xff0c;指尖即将开始重复性劳作时&#xff0c;一个隐藏的魔法世界正在Word中悄然展开。深夜的实验室里&#xff0c;李博士盯着屏幕上那篇长达三十页的论文初稿&#xff0c;参考文…

作者头像 李华
网站建设 2026/10/17 2:20:46

如果GPT-5.2可以胜任你的大部分工作,你会选择全面拥抱它,还是会恐惧它带来的冲击?它会让你更自由,还是更焦虑?

当“工作”的定义被AI重新书写 我们刚刚见证了ChatGPT-5.2的震撼登场。它不仅仅是一个聊天的机器人&#xff0c;而是实打实的、能在70%专业任务上表现优于人类的“超级专家”。它在撰写代码、分析法律文件、构建财务模型方面的速度和准确性&#xff0c;已经让很多人感到脊背发凉…

作者头像 李华
网站建设 2026/10/16 22:13:13

2026年大模型学习资源全攻略:从零到精通,小白到程序员,一篇超详细的从入门到精通大模型学习指南!

简介 本文全面梳理2025年大模型学习资源&#xff0c;涵盖斯坦福等名校课程、DeepLearning.AI等在线平台教程、开源项目及专题资源。为不同层次学习者提供从入门到精通的学习路径&#xff0c;包括基础理论、实践项目和前沿技术&#xff0c;特别推荐了适合小白和程序员的必看课程…

作者头像 李华
网站建设 2026/10/16 17:34:27

15、优化Windows系统性能:媒体定制与系统分析指南

优化Windows系统性能:媒体定制与系统分析指南 1. 定制Windows媒体库 在Windows系统中,若要将其他计算机上录制的节目添加到媒体库以便观看,可按以下步骤操作: 1. 选择“录制电视”媒体库,然后点击“下一步”。 2. 选择“将文件夹添加到库”,再点击“下一步”。 3. 选…

作者头像 李华
网站建设 2026/10/16 17:47:56

【软考系统架构设计师】六、软件工程

软件工程是软考系统架构设计师考试的核心支柱模块&#xff0c;不仅是理解软件架构设计、系统集成等复杂内容的基础&#xff0c;更是案例分析题中 “架构设计方案落地”“项目风险控制” 等场景的核心依托。在历年考试中&#xff0c;该模块分值稳定在 8-10 分&#xff0c;覆盖单…

作者头像 李华