深入挖掘CSS前端进阶之路前端开发

CSS趋势:网格布局Grid

2019-10-18  本文已影响0人  果汁凉茶丶

网格布局,一种突破一维空间的布局思路,引入“行”和“列”的概念在二维空间中实现样式效果。其强大的网页空间分配能力,是连Flex在内的所有布局方式都未有过的。它与Flex具有一定的相似性,都可以指定容器内多个项目的位置,但又有很大的不同。可以认为,Grid 远比 “Flex” 强大。

  类似上图的网页布局模型,是Grid布局的拿手好戏。图中对应的名称,在网格布局中被称作“区域名”。本文偏干货,想查看更多使用案例,可阅读Learn CSS Grid一文

# 概念须知

网格布局属性设置有两大类:(1)容器属性 (2)项目属性。
设置网格布局后,以下几个CSS属性将失效:floatdisplay: inline-blockdisplay: table-cellvertical-aligncolumn-*

# 容器属性字典

一、设置容器为网格布局

  网格布局方法中,容器内部的项目默认是block类型的,如果需要展示为行内块级元素,可以设置为inline-grid

二、划分单元格及设置大小
(8) 与 (1) 的组合效果
三、给单元格分区域

  同行命名的区域名中间以空格隔开,而不是逗号,点号表示跳过该单元格也就是不对该单元格命名区域。
  值得关注的是,区域命名后,每个区域的起始网格线会自动命名为区域名-start,结束为区域名-end。水平网格线和垂直网格线具有相同的名称

(3) 的分区效果
四、设置项目间距
五、优先排列方向
(3) 的效果。否则因1后放不下2图中3位置将留空
六、设置自动生成的单元格大小

  有时候因布局需要,会空出某个单元格不用,如第一个项目需要显示在第一行第二列单元格上,如果单元格数量与项目数量相同,就会剩余一个项目超出自动排列到最后一行。网格布局会自动再生成一个单元格来放这个项目。

七、容器内容的对齐方式

  相对于display: grid的容器,其内部元素作为一个整体相对于这个容器的对齐方式

八、单元格内容对齐方式

  容器中有一个或多个单元格,单元格内部存放着项目,这些项目相对于单元格的对齐方式

九、终极简写

  这个简写并不容易理解和维护,不推荐使用

# 项目属性字典

一、项目内容对齐方式

  容器内容对齐方式是justify-content,单元格内容对齐方式是justify-items,项目内容指的是在项目内部的元素,相对于该项目的对齐方式。所以本属性只会影响单个项目。前两个属性都会影响所有项目。

二、设置项目占用空间

  本属性中,如果把一下四个网格线均设置了,其余未指定区域自动排列的项目会根据dense的规则自动进行稠密布局。

简写办法

(1) / (2) 的显示效果

# 浏览器支持情况

  作为比较新的技术方案,肯定会担心支持性的问题,好在它已被广泛的接受,某E 11 版本也已做了支持

上一篇下一篇

猜你喜欢

热点阅读