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>
目录
相关文章
|
Java 程序员
Java程序员-你真的了解死锁吗
Java程序员-你真的了解死锁吗
168 0
|
6月前
|
JavaScript 前端开发 开发者
Vue 自定义进度条组件封装及使用方法详解
这是一篇关于自定义进度条组件的使用指南和开发文档。文章详细介绍了如何在Vue项目中引入、注册并使用该组件,包括基础与高级示例。组件支持分段配置(如颜色、文本)、动画效果及超出进度提示等功能。同时提供了完整的代码实现,支持全局注册,并提出了优化建议,如主题支持、响应式设计等,帮助开发者更灵活地集成和定制进度条组件。资源链接已提供,适合前端开发者参考学习。
500 17
|
JavaScript 前端开发
详细解读checkbox的全选与反选
详细解读checkbox的全选与反选
350 0
|
传感器 存储 监控
TDengine 签约北微传感,实现海量传感器数据的秒级响应
在当今物联网(IoT)快速发展的背景下,传感器技术已成为各个行业数字化转型的关键组成部分。随着设备数量的激增和数据生成速度的加快,如何高效地管理和分析这些数据,成为企业实现智能化运营的重要挑战。
198 0
|
网络协议 Java 网络性能优化
java网络编程(3)UDP协议编程(单播多播广播)
这一篇文章开始着重讲解UDP编程。这块的知识也算是非常重要的,而且现在的编程都离不开网络。花了一些时间整理了一下。
612 0
java网络编程(3)UDP协议编程(单播多播广播)
|
机器学习/深度学习 算法 数据挖掘
经典机器学习系列(五)【决策树详解】
经典机器学习系列(五)【决策树详解】
598 0
|
域名解析 安全 数据安全/隐私保护
阿里云企业邮箱设置教程(详细操作流程)
阿里云企业邮箱如何设置?分为三步,首先域名添加企业邮箱MX解析,然后重置企业邮箱管理员密码,最后登录企业邮箱管理员账密码添加和分配员工邮箱账号
11936 0
阿里云企业邮箱设置教程(详细操作流程)
|
存储 人工智能 自然语言处理
能力介绍——ASR语音识别/TTS合成
ASR(自动语音识别)有电话机器人,VOS线路问题或要演示站AI技术支持,外呼中心搭建找博主。VX_ID:3307623172。就是将麦克风采集到的自然声音转化为文字的过程,相当于人的耳朵+大脑(一部分)。
19292 0
|
网络协议 网络性能优化 数据安全/隐私保护
我的mqtt协议和emqttd开源项目个人理解(6) - 使用Wireshark分析mqtt协议
我的mqtt协议和emqttd开源项目个人理解(6) - 使用Wireshark分析mqtt协议
402 0
我的mqtt协议和emqttd开源项目个人理解(6) - 使用Wireshark分析mqtt协议
|
安全 Java 测试技术
autojs用签名校验保护app
牙叔教程 简单易懂
641 0