当前位置:网站首页 > R语言数据分析 > 正文

grid布局兼容(grid布局和flex布局)



我们前面讲的Flex布局是轴线布局,只能指定"项目"针对轴线的位置,可以看做是一维布局,Grid布局则是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以看做是二维布局,Grid布局远比Flex布局强大

grid布局像一个个子一个格子的排列,更加灵活,更加强大。

在这里插入图片描述

常用布局方式

  1. 传统布局方式
    1. 利用position属性+display属性+float属性布局,兼容性最好,但是效率低,麻烦
  2. flex布局
    1. 有自己的一套属性,效率高,学习成本低,兼容性强
  3. grid布局
    1. 网格布局(Grid)是最强大的css布局方案。但是知识点较多,学习成本相对困难,目前的兼容性不如flex好

基本概念图

在这里插入图片描述

每个grid布局,有隐藏的网格线,用来帮助定位的

在这里插入图片描述

准备一个大div,里面包裹住10个div,然后给每个div的内容设置不同的数字和背景色,方便标识

 

和flex布局一样,拥有容器和项目的概念

在这里插入图片描述

容器共有15个属性:

  • grid-tamplate-columns:设置容器每列的宽度(项目的宽度)
  • grid-template-rows:设置容器每行的宽度(项目的高度)
  • grid-row-gap:设置每行之间的行间距
  • grid-column-gap:设置每列之间的列间距
  • grid-gap:上面两个设置的简写
  • grid-template-areas:一个区域由单个或多个单元格组成,由你决定(具体使用,需要在项目属性里面设置)
  • grid-auto-flow:划分网格以后,容器的子元素会按照顺序,自动放置在每一个网格。默认的放置顺序是“先行后列”即先填满第一行,再开始放入第二行(就是子元素的排放顺序,和flex布局的属性基本一样)
  • justify-items:设置单元格内容的水平和垂直的对齐方式(主(水平)方向)
  • align-items:设置单元格内容的水平和垂直的对齐方式(副(垂直)方向)
  • place-items:上面两个属性的简写
  • justify-content:设置整个内容区域的水平和垂直的对齐方式(主(水平))
  • align-content:设置整个内容区域的水平和垂直的对齐方式(副(垂直))
  • place-content:上面两个属性的简写
  • grid-auto-columns:用来设置多出来的项目的宽
  • grid-auto-rows:用来设置多出来的项目的高

1、grid-tamplate-columns

常和一起使用,想要多少行和列,就填写相应属性值的个数,不填写,自动分配

比如我想设置前三行和前四列的宽高为100px

在这里插入图片描述

 

在这里插入图片描述

2、grid-template-rows

一般和上个属性搭配使用,上面演示了。。。

grid-template-* 值写法

  1. repeat():第一个参数是重复的次数,第二个参数是所要重复的值
 
  1. auto-fill:有时,单元格的大小时固定的,但是容器的大小不确定,这个属性就会自动填充
 

在这里插入图片描述

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

在这里插入图片描述

  1. minmax():函数产生一个长度范围,表示长度就在这个范围之中,它接受两个参数,分别为最小值和最大值

演示需要先把容器的宽高去掉

 

在这里插入图片描述

  1. auto:表示由浏览器自己决定长度
 

在这里插入图片描述

  1. 网格线,可以用方括号定义网格线名称,方便以后的引用

在这里插入图片描述

 

3、grid-row-gap

项目之间的行间距,一般和一起使用

比如想要设置每个项目之间的间距为10px

 

在这里插入图片描述

4、grid-column-gap

项目之间的列间距,一般和上面一起使用,上面一起演示了

5、grid-gap

上面两个间距的合并的写法,如果行列间距值一样,可以只写一个

 

在这里插入图片描述

grid-*-gap扩展

根据最新标准,上面三个属性名的

 

6、grid-template-areas

一个区域由单个或多个单元格组成,由你决定具体使用,需要在项目属性里面设置

在这里插入图片描述

 

7、grid-auto-flow

划分网格以后,容器的子元素会按照顺序,自动放置在每一个网格。默认的放置顺序是“先行后列”即先填满第一行,再开始放入第二行(就是子元素的排放顺序)

默认是

 

在这里插入图片描述

grid-auto-flow扩展

  • 在这里插入图片描述

  • 可以合理利用空间

    在这里插入图片描述

注意:拥有以上效果,需要先给元素单独设置属性,表示占表格列的第一条线开始,到第三条线结束的距离,后面讲项目的时候会讲到

8、justify-items

设置单元格内容的水平和垂直的对齐方式(水平方向),有四个值

  • start:开头
  • end:尾部
  • center:中间
  • stretch

需要给项目里面内容单独设置宽度才能看出来

8.1、start
 

在这里插入图片描述

8.1、end
 

在这里插入图片描述

8.1、center
 

在这里插入图片描述

9、align-items

设置单元格内容的水平和垂直的对齐方式(水平方向),有四个值

  • start:开头
  • end:尾部
  • center:中间
  • stretch

需要给项目里面内容单独设置宽度才能看出来,这里只演示一个了

 

在这里插入图片描述

10、place-items

上面两个属性的简写,如果值一样,可以只写一个

 

在这里插入图片描述

11、justify-content

设置整个内容区域的水平对齐方式,共有7个值:

  • start:行首
  • end:行尾
  • center:行中间
  • stretch
  • space-around:和flex布局的效果一样,均匀排列每个元素,首个元素放置于起点,末尾元素放置于重点
  • space-betweeen:和flex布局的效果一样,均匀排列每个元素,每个元素周围分配相同的空间
  • space-evenly:均匀排列每个元素,每个元素之间的建个相等
11.1、start
 

在这里插入图片描述

11.2、end
 

在这里插入图片描述

11.3、center
 

在这里插入图片描述

11.4、space-around
 

在这里插入图片描述

11.5、space-between
 

在这里插入图片描述

11.6、space-evenly
 

在这里插入图片描述

12、align-content

设置整个内容区域的垂直对齐方式,和上面一样,拥有七个值,这里就不再一一列举了,举两个例子

12.1、end
 

在这里插入图片描述

12.2、space-around
 

在这里插入图片描述

13、place-content

上面两个属性的简写

 

在这里插入图片描述

14、grid-auto-columns

用来设置多出来的项目的宽

我这里内容区设置三行三列的行列为100px,这样就多出来一个div10没有设置。

在这里插入图片描述

可以单独给多出来的元素设置宽

 

15、grid-auto-rows

用来设置多出来的项目的高

 

在这里插入图片描述

项目共有10个属性

  • grid-column-start:用来指定item的具体位置,根据在哪根网格线(起始线)
  • grid-column-end:用来指定item的具体位置,根据在哪根网格线(结束线)
  • grid-row-start:用来指定item的具体位置,根据在哪根网格线(起始线)
  • grid-row-end:用来指定item的具体位置,根据在哪根网格线(结束线)
  • grid-column:1和2的简写形式
  • grid-row:3和4的简写形式
  • grid-area:指定项目放在哪一个区域
  • justify-self:justify-self属性设置单元格内容的水平位置 (左中右),跟justify-items属性的用法完全一致但只作用于单个项目(水平方向)
  • align-self:align-self属性设置单元格内容的垂直位置 (上中下),跟align-items属性的用法完全一致也是只作用于单个项目(垂直方向)
  • place-self:8和9的简写形式

1、grid-column-start

用来指定item的具体位置,根据在哪根网格线(起始线),和下面的属性一起使用,在下面一起演示

2、grid-column-end

用来指定item的具体位置,根据在哪根网格线(结束线)

比如我第一个元素需要使用所在行上两个格子

在这里插入图片描述

 

在这里插入图片描述

3、grid-row-start

用来指定item的具体位置,根据在哪根网格线(起始线),和下面的属性一起使用,在下面一起演示

4、grid-row-end

用来指定item的具体位置,根据在哪根网格线(结束线)

比如我第一个元素需要使用所在行上两个格子,所在列上两个格子

在这里插入图片描述

 

在这里插入图片描述

5、grid-column

1和2的简写形式,使用 / 分隔

 

6、grid-row

3和4的简写形式,使用 / 分隔

 

7、grid-area

指定项目放在哪一个区域,搭配使用

 

在这里插入图片描述

8、justify-self

justify-self属性设置单元格内容的水平位置 (左中右),跟justify-items属性的用法完全一致但只作用于单个项目(水平方向),也是四个值

  • start
  • end
  • center
  • stretch
8.1、start
 

在这里插入图片描述

8.2、end
 

在这里插入图片描述

8.3、center
 

在这里插入图片描述

9、align-self

align-self属性设置单元格内容的垂直位置 (上中下),跟align-items属性的用法完全一致也是只作用于单个项目(垂直方向),和上面的值一样

9.1、start
 

在这里插入图片描述

9.2、end
 

在这里插入图片描述

9.3、center
 

在这里插入图片描述

10、place-self

上面两个的简写

 

在这里插入图片描述

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

版权声明


相关文章:

  • tldr缩写(tmr缩写)2025-05-17 18:09:05
  • nsenter进入网络空间(怎么进入network-scripts)2025-05-17 18:09:05
  • QPainterPath(qpainterpath清空)2025-05-17 18:09:05
  • githubusercontent镜像(github国内镜像站)2025-05-17 18:09:05
  • raise a suilen动画(raise a suilen百科)2025-05-17 18:09:05
  • oran系统(oreo系统)2025-05-17 18:09:05
  • spring 入门(spring入门程序实验报告)2025-05-17 18:09:05
  • 合并数组arr1和数组arr2,结果返回新的数组(char数组合并)2025-05-17 18:09:05
  • 数组方法filters(数组方法every)2025-05-17 18:09:05
  • vmware密钥多少钱(vmware密钥能用几次)2025-05-17 18:09:05
  • 全屏图片