Grid网格布局学习笔记

简介: Grid网格布局学习笔记

Flex 布局是轴线布局,只能指定"项目"针对轴线的位置,可以看作是一维布局。

Grid 布局则是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以看作是二维布局。

Grid 布局远比 Flex 布局强大。

.grid {
    /* 块级元素 */
    display: grid;
}

容器属性

1、划分行和列

指定列宽 grid-template-columns

指定行高 grid-template-rows

允许的值:
100px 100px 100px;
33.33% 33.33% 33.33%;
repeat(3, 33.33%); (重复的次数, 重复值)
repeat(auto-fill, 100px); 自动填充
1fr 2fr; 比例关系
150px 1fr 2fr;
1fr 1fr minmax(100px, 1fr); 长度范围
100px auto 100px; 由浏览器自己决定长度
[c1] 100px [c2] 100px [c3] auto [c4]; 网格线的名称

2、行列间距

行间距 grid-row-gap (row-gap)
列间距 grid-column-gap (column-gap)
grid-gap (gap): <grid-row-gap> <grid-column-gap>;

3、指定"区域"

grid-template-areas: 'a b c'
'd e f'
'g h i';

4、放置顺序

grid-auto-flow
row 先行后列 (默认)
column 先列后行

5、单元格对齐

水平位置 justify-items: 
start | end | center | stretch(default);
垂直位置 align-items:
start | end | center | stretch(default);

place-items: <align-items> <justify-items>;

6、内容对齐

水平位置justify-content: 
start | end | center | stretch | space-around | space-between | space-evenly;
垂直位置align-content:
start | end | center | stretch | space-around | space-between | space-evenly;

place-content: <align-content> <justify-content>

7、多余网格的列宽和行高

grid-auto-columns
grid-auto-rows
写法与grid-template-columns和grid-template-rows完全相同

易读易写的角度考虑,还是建议不要合并属性

项目属性

1、网格线定位

grid-column-start:左边框所在的垂直网格线
grid-column-end:右边框所在的垂直网格线
grid-row-start:上边框所在的水平网格线
grid-row-end属性:下边框所在的水平网格线

允许值:
指定为网格线的序号 1
指定为网格线的名字 header-start
跨越网格 span 2;

grid-column: <grid-column-start> / <grid-column-end>
grid-row: <grid-row-start> / <grid-row-end>

2、指定项目区域

grid-area

允许值
区域名: e
指定项目的位置:<row-start> / <column-start> / <row-end> / <column-end>;

3、单元格内容对齐

水平位置 justify-self(左中右),与justify-items一致
垂直位置 align-self(上中下),与align-items一致

place-self: <align-self> <justify-self>;

布局实例

<style>
.grid {
/ 块级元素 /
display: grid;

/ 指定列宽 /
grid-template-columns: 1fr 1fr 1fr;
/ 指定行高 /
grid-template-rows: repeat(3, 100px);

/ 指定行列间距 /
row-gap: 10px;
column-gap: 10px;

/ 放置顺序 /
grid-auto-flow: row;

/ 单元格对齐 /
justify-items: stretch;
}

.column {
background-color: #EEEEEE;
text-align: center;
}
</style>


<div class="grid">
<div class="column">1</div>
<div class="column">2</div>
<div class="column">3</div>
<div class="column">4</div>
<div class="column">5</div>
<div class="column">6</div>
<div class="column">7</div>
<div class="column">8</div>
<div class="column">9</div>
</div>

12.png

参考

CSS Grid 网格布局教程

            </div>
目录
相关文章
|
12月前
|
Java 测试技术 开发者
通义灵码助力高效开发——我的实践心得
作为一名Java开发工程师,我一直在寻找提高开发效率的方法。最近,我尝试了通义灵码的个人版新功能,并取得了显著的效果。本文将分享我的实践场景、效果和心得。
428 1
|
前端开发 Android开发 开发者
探索Android与iOS的跨平台开发策略
在当今多元化的移动设备市场中,开发者面临着为不同操作系统设计应用的挑战。本文深入探讨了Android和iOS两大主流平台的跨平台开发策略。我们将分析使用Flutter、React Native等框架进行跨平台开发的优劣,并讨论如何克服各平台间的差异性,以实现高效、一致的用户体验。此外,文章还将提供一些实用的技巧和最佳实践,帮助开发者优化跨平台应用的性能和兼容性。
266 4
|
监控 安全 前端开发
现货期权交易所开发技术规则及案例说明
现货期权交易所开发源码包含交易、行情、结算、风险控制和信息安全五大功能。支持交易品种上市、实时行情发布、资金结算、异常交易监测等,确保交易的公平性、高效性和安全性。案例中采用Spring Boot、Vue.js等技术,实现期权合约买卖、行情展示等功能,经过全面测试和优化后上线运营。
|
算法 应用服务中间件 图形学
贝叶斯推理导论:如何在‘任何试验之前绝对一无所知’的情况下计算概率
这篇文章探讨了贝叶斯推理的发展历史,从帕斯卡尔和费马的早期工作到托马斯·贝叶斯、皮埃尔-西蒙·拉普拉斯和哈罗德·杰弗里斯的贡献。文章指出,贝叶斯分析经历了从使用均匀先验到发展更为客观的方法,如杰弗里斯先验的过程。它讨论了费雪对逆概率的批评,以及贝叶斯方法在处理不确定性问题上的优势。文章还介绍了如何通过匹配覆盖率来评估先验分布的合理性,并通过几个例子展示了不同先验在二项分布和正态分布问题中的应用。最后,文章提出了贝叶斯分析在统计学中的地位,强调了在缺乏先验知识时建立良好先验的重要性,并讨论了主观性和客观性在统计推理中的角色。
306 1
|
存储 算法 安全
题库【操作系统】4
题库【操作系统】4
1326 0
|
SEO
谷歌搜索留痕的技术公式【2023年新版】
一般情况下我们是不建议个人搭建的,因为成本很高,而且技术成本和维护成本也对谷歌的SEO机制要有一定的熟悉。
686 0
谷歌搜索留痕的技术公式【2023年新版】
|
自然语言处理
tinymce 如何实现动态国际化
tinymce 是一个非常强大的富文本编辑器,tinymce是支持开启通过配置 language 来决定 tinymce 的语言版本例如下面配置 日文 英文 中文 且在同一个页面
573 1
tinymce 如何实现动态国际化
|
存储 运维 分布式计算
Doris 毕业成为 Apache 顶级项目,独家专访百度 PALO 团队
Doris 毕业成为 Apache 顶级项目,独家专访百度 PALO 团队
1259 0
Doris 毕业成为 Apache 顶级项目,独家专访百度 PALO 团队
阿里云管局审核需要多长时间?精准天数查询
阿里云网站备案初审通过提交到管局,管局审核时间为1到20天,在阿里云备案系统中可以查询到精准审核时间
2187 0
阿里云管局审核需要多长时间?精准天数查询
|
druid 前端开发 Java
SpringBoot的SSMP案例(后端开发)
SpringBoot的SSMP案例(后端开发)
SpringBoot的SSMP案例(后端开发)