当前位置:网站首页 > HTML与CSS基础 > 正文

grid 布局(css grid布局)



grid布局是CSS中的一种布局系统,它允许开发者通过定义行和列来创建网格结构,并控制网格项在网格中的位置和大小。

Grid布局:

  • 二维布局系统:
    Grid布局是为了 解决二维布局系统而设计的,允许同时控制行和列的布局,非常适合创建复杂的网格结构。
  • 定义结构:
    通过定义和定义网格的行和列。通过定义网格区域,以及和等属性在项目上控制当个网格项的位置
  • 单元格:
    Grid布局强调的是将页面划分为一个个单元格,每个单元格可以换分不同的元素,非常适合对称和不对称的布局。

flex布局:

  • 一维布局系统:Flex布局主要用于一维空间的布局,即沿着一个轴(横向或纵向分配空间,非常适合列表、导航条、工具栏、页脚等元素的排列)
  • 流动和对齐:通过控制元素的排列方向,和等属性控制元素在主轴和交叉轴上的布局方式
  • 自适应:flex布局擅长让容器内的项目自动调整大小以适应可用的空间。

flex布局的相关内容参见:https://blog.csdn.net/mantou_riji/article/details/?

在这里插入图片描述

在开发过程中这两种布局可以一起使用来实现更丰富的布局效果。

  • 容器:将一个元素设置为,该元素就变成了网格容器。它定义了一个包含子元素的网格布局上下文。
  • 网格项( Grid 项 ):网格容器内的子元素自动成为网格项,他们按照网格容器定义的布局规则排列。
  • 行(Rows)与列(Columns):Grid布局通过定义行和列来创建网格结构。行和列的大小通过各种Grid属性来控制。
  • 网格线:划分网格的水平和垂直线
  • 网格轨道:网格轨道是相邻两个网格线之间的空间,可以是行轨道或列轨道。
  • 网格单元:由行和列形成的单个空间,grid布局的最基本的布局单位。
  • 区域:使用属性,可以为网格定义命名区域。这样就可以通过名称而不是行和列的数字来放置Grid项。

eg:

 

在这里插入图片描述

属性含义display:grid表示该容器是一个grid布局的块级元素display:inline-grid表示该容器是一个grid布局的行内元素display:subgrid继承父元素的grid布局

grid-template-rows

  • none:表示不明确的网格,所有的行和其大小都将由grid-auto-rows 属性隐式的指定。
  • :非负值的长度大小
  • :非负值且相对于网格容器的百分比。
  • :非负值,用单位 来定义网格轨道大小的弹性系数。每个定义了 的网格轨道会按比例分配剩余的可用空间。
  • :是一个用来表示以来占据网格轨道的关键字。
  • :是一个用来表示以来占据网格轨道的关键字。
  • :是一个来定义大小范围的属性,大于等于 min 值,并且小于等于 max 值。
  • :如果该网格轨道为最大时,该属性等同于 ,为最小时,则等同于 。

  • length:表示划分为的行数
    percentage:表示每行的高度

  • 表示网格轨道的重复部分,以一种更简洁的方式去表示大量而且重复行的表达式。
    positive-integer:表示要设置相同行的个数
    track-list:表示设置每行的高度

eg:

 

grid-template-columns

 

grid-template-areas

  • none:网格容器没有定义任何的网格区块 (grid areas)。
  • :多行字符串,一行字符串代表一个表格行,一个字符串中使用空格分割,分割的每一个单元代表每一列。
  • 空格分割后的每一个单词表示一个网格项,若单词相同表示这两个网格项表示为一个网格区块,存储一个元素即可,同时如果元素要放在该网格区块需要设置css的属性为该网格区块的表示单词。(注意:最后有几个网格块,该容器内就应该有几个元素)。

示例1:

 

在这里插入图片描述
示例2:

 

在这里插入图片描述

grid-template

grid-template 是CSS 属性、、简写,用以定义网格中行、列与分区。

 

eg:

 

在这里插入图片描述

如果没有使用显示网格属性就会默认使用隐式网格属性。

grid-auto-rows

:用于指定隐式创建的行轨道大小。

取值:

  • :一个非负的长度。
  • :相对于网格窗口块尺寸的非负 值。如果网格容器的块尺寸是不确定的,则百分比值将被视为 auto。
  • :非负的、以为单位的维度,指定轨道的弹性因子。每个 尺寸的轨道都按其弹性因子的比例挤占剩余空间的一部分。
  • ::关键词,指明由网格元素中占用空间最大的那一个来决定轨道的尺寸。
  • :关键词,指明由网格元素中占用空间最小的那一个来决定轨道的尺寸。
  • :函数符号,定义一个不小于min且不大于max的尺寸范围。
  • :根据内容大小设置行高。

eg:

 

在这里插入图片描述

grid-auto-columns

eg:

 

在这里插入图片描述

grid-auto-flow

  • row:该关键字指定自动布局算法按照通过来排列元素,在必要时增加新行。如果既没有指定 row 也没有 column,则默认为 row。
  • column:该关键字指定自动布局算法通过来排列元素,在必要时增加新列。
  • dense:该关键字指定自动布局算法使用一种“稠密”堆积算法,如果后面出现了稍小的元素,则会试图去填充网格中前面留下的空白。这样做会填上稍大元素留下的空白,但同时也可能导致原来出现的次序被打乱。

的取值可以是上述取值的一个或两个。

eg:

 

在这里插入图片描述
如果修改为·
在这里插入图片描述

column-gap( grid-column-gap)

  • normal表示列之间的间隔宽度。在 时默认间隔为 1em,其他类型布局默认间隔为 0。
  • :用 来定义列之间的间隔大小。而且 值必须是非负数的。
  • :用(百分比)来定义列之间的间隔大小。

row-gap ( grid-row-gap)

 

在这里插入图片描述


  • 定义了 ,其包含 。

  • 通过 grid-template-rows 属性显式设置行轨道来设置自动流(grid-template-columns 属性设为 none)
    通过 grid-auto-columns 明确该如何自动重复列轨道(同时grid-auto-rows属性设为 auto)
    grid-auto-flow 属性也被相应的设置为 ,并可附有 dense。
    所有其余 grid 次级属性被重置为初始值。

  • 通过 grid-template-columns 属性显式设置列轨道来设置自动流(grid-template-rows 属性设为 none)
    通过 grid-auto-rows 明确该如何自动重复行轨道(同时grid-auto-columns属性设为 auto)
    grid-auto-flow 属性也被相应的设置为 ,并可附有 dense。
    所有其余 grid 次级属性被重置为初始值。
 

在这里插入图片描述
其他取值示例:

 

justify-items、align-items 、place-items

 
  • start:对齐单元格的起始边缘
    在这里插入图片描述
  • end:对齐单元格的结束边缘
    在这里插入图片描述
  • center:单元格内部居中
    在这里插入图片描述
  • stretch:拉伸,占满单元格的整个宽度(默认值)
    在这里插入图片描述

justify-content、align-content 、place-content

justify-content 属性是整个内容区域在容器里面的水平位置(左中右),包括items和空白的分布空间,
align-content 属性是整个内容区域的垂直位置(上中下)。
它们都有如下的属性值:

 
  • start:对齐单元行的起始边缘
    在这里插入图片描述
  • end:对齐单元行的结束边缘
    在这里插入图片描述
  • center:单元行内部居中
    在这里插入图片描述
  • stretch:拉伸,占满单元格的整个宽度(默认值)
    在这里插入图片描述
  • space-around - 每个项目两侧的间隔相等。所以,项目之间的间隔比项目与容器边框的间隔大一倍;
    在这里插入图片描述
  • space-between - 项目与项目的间隔相等,项目与容器边框之间没有间隔;
    在这里插入图片描述
  • space-evenly - 项目与项目的间隔相等,项目与容器边框之间也是同样长度的间隔;
    在这里插入图片描述

CSS属性指定了一个网格项的列的开始位置, 左边框所在的垂直网格线。

取值:

  • auto
    关键字,指示该属性对网格项的放置没有任何影响。

  • 取值为具有的名称
  • n
    将第 n 条网格线用于放置网格项。如果给定负整数,则从显式网格的端边缘开始反向计数,为0无效,默认是1。

  • 取所有名称为的列的第n个作为起始值

  • 为网格单元定义一个,表示两个列之间的距离是n个单位单元列的宽度。
    的值不能取span

示例:

 

eg:

 

在这里插入图片描述

grid-row 属性是一种 的缩写(shorthand)形式。两个取值之间使用分割。

 

在这里插入图片描述
若:

 

则:
在这里插入图片描述

grid-column CSS 属性是 的简写属性。两个属性之间使用进行分割。

 

CSS 属性 grid-area 是一种对于 (按照该顺序)的简写。之间使用进行分割。

到此这篇grid 布局(css grid布局)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
                            

版权声明


相关文章:

  • css伪类选择器(css伪类选择器和伪元素选择器)2025-01-08 18:27:07
  • css-1导弹(css4导弹)2025-01-08 18:27:07
  • 字体图标怎么设置大小css(css字体图标是如何做的)2025-01-08 18:27:07
  • css伪类选择器 where(css伪类选择器是什么)2025-01-08 18:27:07
  • css伪类选择器和伪元素选择器(css3伪元素选择器)2025-01-08 18:27:07
  • css grid布局(css grid布局居中)2025-01-08 18:27:07
  • html5+css3网页设计基础教程(HTML5+CSS3网页设计基础教程王莹相成久史迎新)2025-01-08 18:27:07
  • css3新增属性(css3中新增属性)2025-01-08 18:27:07
  • css3(css3是什么的缩写)2025-01-08 18:27:07
  • html聊天代码(html5聊天界面代码)2025-01-08 18:27:07
  • 全屏图片