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

css grid布局兼容性(css grid布局缺点)

布局,是一个基于网格的二维布局系统,目的是用来优化用户界面设计。


不过,目前任何浏览器默认是不支持布局的,但幸运的是,我们可以设置Chrome、Opera或者Firefox的特殊标志来启用它。在Chrome或Opera中,在地址栏中 输入,然后将 选项设置为;在Firefox中,将选项设置为可用。

兼容性:Grid布局兼容性

注意!注意! 重磅消息,在2017年3月左右,大部分浏览器都会开始默认支持布局,所以,现在完全有必要开始学习布局。

网上关于布局的资料已经很多了,本文只是用来记录一下Grid布局的相关属性和用法,防止别人的网站在某一天挂掉。

1、启用网格容器

我们使用属性来定义一个网格容器,它的值决定了容器展现为块级还是内联形式。一旦启用网格容器,它的所有子元素都进入文档流,称为网格子项。
 
  • :定义一个块级的网格容器
  • :定义一个内联的网格容器
  • :定义一个继承其父级网格容器的行和列的大小的网格容器,它是其父级网格容器的一个子项。

注意:对网格容器没有效果。

简单术语介绍:

每一块表示一个网格子项(网格单元),4个(任意数量)网格子项组成了网格区域。

2、网格容器的属性

2.1 grid-template-columns/grid-template-rows

词法:
 
  • :定义网格单元的宽高,其单位可以是一个长度(如px、em、rem、vw、vh)或百分比,也可以是网格中自由空间的份数(单位为fr)。
  • :定义网格线的名称,它不是必须值。可以一个你选择的任意名字,当没有显示设定时,它的名字以数字表示。

实例:
当你在轨迹值中间留空格,网格线将被自动以数字命名:
 

当然,我们还可以给网格线指定一个名字:
 

注意:网格线命名时必须加上中括号

一根网格线还可以有多个名字,以空格隔开,中括号包裹:
 
如果你定义了容器的重复部分,你可以使用方法来生成多个相同值:
 

特殊单元:fr

fr单元允许你将网格容器中的自由空间设置为一个份数:
 
在上面的代码中,将网格容器的每个子项设置为三分之一。

注意:自由空间是在固定子项确定后开始 计算
 
在上面的代码中,自由空间是单位的总和但不包括50px。

2.2 grid-template-areas

grid-template-areas可以配合定义一个显式的网格区域。定义网格区域,然后使用调用声明好的网格区 域名称来放置对应的网格项目。

词法:
 
  • :在中指定的网格区域名字
  • :一个句点表示一个空的网格单元
  • :没有网格区域被定义

实例:
 
设置CSS样式:
 
在上面的代码中,我们将创建一个4乘以3的网格容器,第一行由header区域组成,中间一行由 2 个main区域和1个空单元和1个sidebar区域组成,最后一行由footer区域组成。


2.3 grid-column-gap/grid-row-gap/grid-gap

指定网格线的大小,也可以说是网格子项之间的间距。

词法:
 
  • :长度值

grid-gap是和的简称:
 
如果只有一个值,的值将和一样。

实例:
 
注意:间隔仅仅作用在网格子项之间,不作用在容器边缘。



2.4 justify-items/align-items

justify-items

让网格子项的内容和列轴对齐(则相反,是和行轴对齐),这个值对容器里面的所有网格子项都有用。
 
  • :内容和网格区域的左边对齐
  • :内容和网格区域的右边对齐
  • :内容和网格区域的中间对齐
  • :填充整个网格区域的宽度(默认值)

align-items

让网格子项的内容和行轴对齐,这个值对容器里面的所有网格子项都有用。
 
  • :内容和网格区域的顶部对齐
  • :内容和网格区域的底部对齐
  • :内容和网格区域的中间对齐
  • :填充整个网格区域的高度(默认值)


2.5 justify-content/align-content

justify-content

如果用像px非弹性单位定义的话,总网格区域大小有可能小于网格容器,这时候你可以设置网格的对齐方式(垂直于列网格线对齐)。
 
  • :左对齐
  • :右对齐
  • :居中对齐
  • :填充网格容器
  • :在每个网格子项中间放置均等的空间,在始末两端只有一半大小
  • :两边对齐,在每个网格子项中间放置均等的空间,在始末两端没有空间
  • :网格间隔相等,包括始末两端


align-content

如果用像px非弹性单位定义的话,总网格区域大小有可能小于网格容器,这时候你可以设置网格的对齐方式(垂直于行网格线对齐)。
 
  • :顶部对齐
  • :底部对齐
  • :居中对齐
  • :填充网格容器
  • :在每个网格子项中间放置均等的空间,在始末两端只有一半大小
  • :上下对齐,在每个网格子项中间放置均等的空间,在始末两端没有空间
  • :在每个网格子项中间放置均等的空间,包括始末两端



2.6 grid-auto-columns/grid-auto-rows

自动生成隐式网格轨道(列和行),当你定位网格项超出网格容器范围时,将自动创建隐式网格轨道。
 
  • :可以是一个长度,百分比或者是一个网格中自由空间的份数(通过使用fr单位)

为了说明隐式网格轨迹如何被创建,思考一下这个:
 
在上面的代码中,我们创建了 2 x 2 的网格。

但现在想象你使用来定位你的网格子项,就像这样:
 


我们告诉.item-b在第 5 列网格线开始第 6 列网格线结束,但我们还没有定义第 5 或者第 6 列。因为我们引用的线不存在,0 宽度的隐式网格轨迹将被创建来填充这些空缺。我们可以使用和来指定这些隐式网格轨迹的宽度:
 


2.7 grid-auto-flow

在没有设置网格项的位置时,这个属性控制网格项怎样排列。
 
  • :按照行依次从左到右排列
  • :按照列依次从上到下排列
  • :按先后顺序排列

来看看下面的例子:
 
下面定义5列2行网格,同时定义:
 
再设置网格子项布局:
 
由于我们设置了,item-b、item-c和item-d在行上是从左到右排列,如下:


如果我们设置 ,结果如下:


2.8 grid

grid是一种简写形式:
 

3、网格子项的属性

3.1 grid-column-start/grid-column-end/grid-row-start/grid-row-end/grid-column/grid-row

 

  • :可以是一个数字以适用被标记了数字号的网格线,或者是一个名字以适用命名了的网格线
  • :子项将跨越指定数字的网格轨迹
  • :子项将跨越指定名字之前的网格线
  • :自动布局,自动跨越或者默认跨越一个。

实例:

 


 


grid-column是和的简称;是和的简称。

 

实例:

 


3.2 grid-area

 

  • :选择的名字
  • – 可以是网格线的数字或名字

实例:

 
 


3.3 justify-self/align-self

(1)justify-self

 

  • – 让内容在网格区域左对齐
  • – 让内容在网格区域右对齐
  • – 让内容在网格区域中间对齐
  • – 填充着呢个网络区域的宽度(默认值)


(2)align-self

 

  • – 让内容在网格区域上对齐
  • – 让内容在网格区域下对齐
  • – 让内容在网格区域中间对齐
  • – 填充着呢个网络区域的高度(默认值)


参数文章:

如有错误,欢迎指正!

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

版权声明


相关文章:

  • css3和css的区别(css3与css的区别)2025-04-04 10:45:08
  • css伪类选择器 where(css伪类选择器是什么)2025-04-04 10:45:08
  • css伪类选择器和伪元素选择器(css3伪元素选择器)2025-04-04 10:45:08
  • html自动跳转链接代码(html页面自动跳转代码)2025-04-04 10:45:08
  • css4(Css4202311-W- 翻译)2025-04-04 10:45:08
  • 字体图标怎么设置大小css(css 字体图标)2025-04-04 10:45:08
  • css grid布局案例(div+css布局案例)2025-04-04 10:45:08
  • css4导弹(css8导弹)2025-04-04 10:45:08
  • 字体图标怎么设置大小css(css字体图标是如何做的)2025-04-04 10:45:08
  • vs怎么用html生成css(怎么用vs2019写html)2025-04-04 10:45:08
  • 全屏图片