CSS Grid 布局终极指南:从入门到精通的速查表
myzbx 2025-02-04 15:14 24 浏览
在现代Web开发中,CSS布局是不可或缺的一部分。随着响应式设计的普及,传统的浮动布局已经显得力不从心。这时,CSS Grid布局应运而生,它提供了强大的二维布局能力,让开发者可以轻松实现复杂的页面布局。今天,我们就以一张“CSS Grid Ultimate Cheatsheet”为蓝本,深入剖析Grid布局中的核心属性,帮助大家快速掌握Grid布局的精髓。
CSS Grid布局简介
CSS Grid布局是一种基于网格的二维布局系统。它将页面划分成一个个网格单元,开发者可以通过控制网格单元的大小和位置,来灵活地布局页面元素。与传统的浮动布局相比,Grid布局更加强大、灵活,并且易于使用。
容器 (父元素) 属性
首先,我们来看一下容器(父元素)的属性,这些属性用于定义网格的结构和布局方式。
- display: 该属性用于将一个元素定义为网格容器。
- display: grid;: 创建一个块级网格容器,与普通块级元素类似,会在其前后换行。
- display: inline-grid;: 创建一个行内网格容器,类似行内元素,不会在其前后换行。
- grid-template: 该属性用于定义网格的行和列。
- grid-template-columns: 定义列的宽度。例如,grid-template-columns: 14px 14px 14px; 创建三个宽度为14px的列,使用repeat(3, 14px)可以获得相同的结果。
- grid-template-rows: 定义行的高度。例如,grid-template-rows: 14px 14px 14px; 创建三个高度为14px的行。repeat() 函数也可以用于重复定义行的高度。
- 可以使用fr单位来创建弹性列或行,例如,grid-template-columns: 5px auto 5px; 创建一个固定宽度的列,中间列将占用剩余的所有空间。
- 也可以使用百分比来定义列或行,例如,grid-template-columns: 10% 10% auto; 创建一个由百分比和 auto 组成的列。
- grid-gap: 该属性用于定义网格单元之间的间距。
- grid-gap: 14px;: 设置所有行和列之间的间距均为14px。
- grid-row-gap: 14px;: 设置行之间的间距为14px。
- grid-column-gap: 14px;: 设置列之间的间距为14px。
- gap: gap属性与grid-gap类似,并且也适用于flexbox布局。
- justify-content: 该属性用于在行轴上对齐网格内容。当网格总宽度小于容器宽度时使用。
- justify-content: start;: 内容对齐到容器的起始位置。
- justify-content: end;: 内容对齐到容器的结束位置。
- justify-content: center;: 内容对齐到容器的中心位置。
- justify-content: stretch;: 内容拉伸以填充容器的宽度。
- justify-content: space-around;: 内容均匀分布,每个项目周围有相等的空间。
- justify-content: space-evenly;: 内容均匀分布,项目之间的空间和项目与容器边缘的空间相等。
- justify-content: space-between;: 内容均匀分布,项目之间的空间相等,但项目与容器边缘没有空间。
- align-content: 该属性用于在列轴上对齐网格内容。当网格总高度小于容器高度时使用。
- align-content: start;: 内容对齐到容器的起始位置。
- align-content: end;: 内容对齐到容器的结束位置。
- align-content: center;: 内容对齐到容器的中心位置。
- align-content: stretch;: 内容拉伸以填充容器的高度。
- align-content: space-around;: 内容均匀分布,每个项目周围有相等的空间。
- align-content: space-evenly;: 内容均匀分布,项目之间的空间和项目与容器边缘的空间相等。
- align-content: space-between;: 内容均匀分布,项目之间的空间相等,但项目与容器边缘没有空间。
- grid-auto-flow: 该属性用于控制自动放置网格项的方式。
- grid-auto-flow: row;: 自动放置网格项,从左到右依次排列,当一行填满时,自动换行到下一行。
- grid-auto-flow: column;: 自动放置网格项,从上到下依次排列,当一列填满时,自动换列。
- grid-auto-flow: dense; 或 grid-auto-flow: column dense; 当网格项大小不一致时,尝试填充网格中的空白空间,可能会导致网格项不按顺序排列。
- justify-items: 该属性用于在行轴上对齐网格项内的内容。
- justify-items: start; : 将内容对齐到单元格的起始位置。
- justify-items: end; : 将内容对齐到单元格的结束位置。
- justify-items: center; : 将内容对齐到单元格的中心位置。
- justify-items: stretch; : 拉伸内容以填充单元格的宽度。
- align-items: 该属性用于在列轴上对齐网格项内的内容。
- align-items: start; : 将内容对齐到单元格的起始位置。
- align-items: end; : 将内容对齐到单元格的结束位置。
- align-items: center; : 将内容对齐到单元格的中心位置。
- align-items: stretch; : 拉伸内容以填充单元格的高度。
子元素 (网格项) 属性
接下来,我们来看一下子元素(网格项)的属性,这些属性用于控制网格项在网格中的位置和大小。
- grid-row: 该属性用于定义网格项的行位置。
- grid-row-start: 定义网格项的起始行。grid-row-start: 1;: 网格项从第一行开始。grid-row-start: span 3;: 网格项从第一行开始,跨越3行。
- grid-row-end: 定义网格项的结束行。grid-row-end: 3;: 网格项在第三行结束。grid-row-start: 2; grid-row-end: 4;:网格项从第二行开始,在第四行结束。
- grid-row: 1 / 3: 等效于 grid-row-start: 1; grid-row-end: 3;
- grid-row: 1 / span 3: 等效于 grid-row-start: 1; grid-row-end: span 3;
- grid-column: 该属性用于定义网格项的列位置。
- grid-column-start: 定义网格项的起始列。
- grid-column-start: 1; : 网格项从第一列开始。
- grid-column-start: span 3; : 网格项从第一列开始,跨越3列。
- grid-column-end: 定义网格项的结束列。
- grid-column-end: 3; : 网格项在第三列结束。
- grid-column-start: 2; grid-column-end: 4;: 网格项从第二列开始,在第四列结束。
- grid-column: 2 / 4: 等效于grid-column-start: 2; grid-column-end: 4;
- grid-column: 2 / span 2: 等效于grid-column-start: 2; grid-column-end: span 2;
- grid-row + grid-column: 可以同时使用 grid-row和 grid-column 属性来定义网格项的起始位置和跨越的行数和列数。
- 例如,grid-row: 1 / span 2; grid-column: 1 / span 2; 定义网格项从第一行和第一列开始,跨越两行和两列。
- justify-self: 该属性用于在行轴上对齐单个网格项的内容。
- justify-self: start;: 内容对齐到单元格的起始位置。
- justify-self: end;: 内容对齐到单元格的结束位置。
- justify-self: center;: 内容对齐到单元格的中心位置。
- justify-self: stretch;: 内容拉伸以填充单元格的宽度。
- align-self: 该属性用于在列轴上对齐单个网格项的内容。
- align-self: start;: 内容对齐到单元格的起始位置。
- align-self: end;: 内容对齐到单元格的结束位置。
- align-self: center;: 内容对齐到单元格的中心位置。
- align-self: stretch;: 内容拉伸以填充单元格的高度。
总结
CSS Grid布局是一个功能强大的布局系统,可以帮助我们轻松实现各种复杂的页面布局。本文以速查表为基础,详细讲解了Grid布局中的核心属性。希望通过本文的学习,能帮助大家快速掌握Grid布局的原理和使用方法。
在实际的项目开发中,你是否也遇到过Grid布局相关的问题呢?欢迎在评论区分享你的经验和技巧,让我们一起进步!
相关推荐
- 每日C语言-快速排序(c语言快速排序怎么排)
-
定义:快速排序是一种常见的排序算法,基于分治的思想。其基本思想是选择一个基准数,将待排序数组分为两个子数组,一个子数组中的所有数字都比基准数小,另一个子数组中的所有数字都比基准数大。然后对这两个子数组...
- 【每天学习一个EXCEL函数】SORT 函数(万能排序函数)
-
=SORT(数组[排序依据],[排序顺序],[按列])其中:排序顺序1是升序,-1是降序,不填时默认为1。按列FALSE为竖向排序,True为横向排序,不填时默认FALSE。第3和第4参数是可以...
- C语言排序方法——冒泡排序详解!你学会了吗?
-
冒泡排序法的基本思路为:每次将相邻的两个数比较,将小的调在前面。举个例子,如果有6个数:9,8,5,4,2,0。第一次先将最前面的两个数9和8对调。第二次将第2个数和第3个数对调(9和5)······...
- PHP排序算法:计数、选择、插入、归并、快速、冒泡、希尔、堆
-
1.冒泡排序算法//冒泡排序算法php//author:Hengda//$arr待排序数组//$modefalse正序,true倒序functionbubbleSort(&$arr,...
- 灵魂拷问:如何检查 Java 数组中是否包含某个值?
-
作者|沉默王二责编|Elle在逛programcreek的时候,我发现了一些专注细节但价值连城的主题。比如说:如何检查Java数组中是否包含某个值?像这类灵魂拷问的主题,非常值得深入地研...
- Java排序之冒泡排序(java冒泡排序选择排序)
-
今天来给大家介绍一下排序算法之冒泡排序jwt简介冒泡排序:(BubbleSort)是一种简单的交换排序。之所以叫做冒泡排序,因为我们可以把每个元素当成一个小气泡,根据气泡大小,一步一步移动到队伍的一...
- PHP 数组排序:使用心得、示例代码和问题解决笔记
-
PHP数组排序:使用心得、示例代码和问题解决笔记在PHP开发中,数组排序是一项常见的任务。它可以帮助我们对数组中的元素进行排序,以便更好地管理和处理数据。在本文中,我将分享一些关于PHP数组排序的使...
- 「PHP」常用四种排序算法以及性能对比
-
作为一名合格的PHPer怎么能不接触到算法这个高大上的东西了,今天就来针对初学者来说一说最基础的4种排序算法:冒泡排序、选择排序、插入排序、快速排序(分区排序)。冒牌排序核心思想:比较相邻两个元素的大...
- 在嵌入式用C实现一个数组随机排序
-
在某些应用场景中,可能需要将一个数组的元素重新随机排列,我们可以称之为洗牌算法。其原理并不复杂,就是需要遍历整个数组,如果数组有n个元素,每当遍历到第i个数组元素时(i为数组元素的索引),再从0...
- 查询函数Choose、Lookup、Hlookup、Vlookup应用技巧解读
-
Excel中的查找和引用函数主要用于查找工作表中的所需内容,还可以获得工作表中的单元格位置或表格大小等信息,如果将查找和引用函数配合其他的Excel函数使用,将会发挥更强大的功能。常用的查询表中的数...
- 等了它N年,SORT函终于来了,可以让Excel表格自动排序
-
今天我们来学习一个Excel中的新函数,SORT函数,它的作用是对某一个数据区域进行排序,之前是OFFICE365的专属函数,现在WPS也支持这个函数了,我觉得是时候跟大家讲解下它是的使用方法,这个函...
- js数组常用方法总结(js数组常用的方法及用法)
-
首先说明,本文没技术含量,都是js的知识,只是为以后查阅方便。另外我们开了一个免费的讲解web前端课程,有兴趣的朋友可以去看,详情地址:http://fe.qietu.com/forum.php1、创...
- Excel新公式,好用的SORT排序公式,1分钟学会!
-
最新版本的Excel,里面有一个SORT函数公式,是用来排序的,特别好用,1分钟学会1、Sort诞生背景在排序的时候,我们有一个痛点,举个例子,当我们统计数据时,会下表的任务完成率排序,降序排列其中的...
- [西门子PLC] SCL编程实例:1200/1500PLC不定长数组选择排序运用
-
前景介绍:01选择排序原理;选择排序算法首先从第1个位置开始对全部元素进行选择,选出全部元素中最小的给该位置,再对第2个位置进行选择,在剩余元素中选择最小的给该位置即可;以此类推,重复进行“最小元素”...
- 图解简单选择排序,超详细非常好理解
-
1.基本概念简单选择排序(SelectSort)真的是人如其名,一是它真的非常简单,二是它主要依靠选择和交换操作来进行排序。可以将简单选择排序实现为稳定的排序算法,也可以实现为不稳定的排序算法。我...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 简介 (30)
- HTML 响应式设计 (31)
- HTML URL 编码 (32)
- HTML Web 服务器 (31)
- HTML 表单属性 (32)
- HTML 音频 (31)
- HTML5 支持 (33)
- HTML API (36)
- HTML 总结 (32)
- HTML 全局属性 (32)
- HTML 事件 (31)
- HTML 画布 (32)
- HTTP 方法 (30)
- 键盘快捷键 (30)
- CSS 语法 (35)
- CSS 选择器 (30)
- CSS 轮廓宽度 (31)
- CSS 谷歌字体 (33)
- CSS 链接 (31)
- CSS 定位 (31)
- CSS 图片库 (32)
- CSS 图像精灵 (31)
- SVG 文本 (32)
- 时钟启动 (33)
- HTML 游戏 (34)