Grid和Flex对比总结

相关文章

一、总结

1. 从以下几个方面作为Grid和Flex的区别:

  • 指定线名称,网格,区域
  • 排版方向
  • 容器内容/项目s内容排版
  • 项目属性

2. 全文总结

  • Grid
  • Grid在全局布局方面大胜,是元帅
  • 网格=>二维布局,以布局为基础,布局自适应,多维联动厉害
  • 独立源:可以设置区域及项目选择区域而与书写文档脱钩=>好维护
  • 网格分层:z-index(可以看成3维),脱离文档流
  • Flex
  • Flex在局部布局方面大胜,是大将
  • 弹性=>一维(多行1.5维),以内容为基础,内容自适应,单行联动厉害
  • order:半个独立源
  • 排版方向或内容排版方面绝对的高手
  • 弹性特点:没有方向,空间自由分配,自动对齐

3. 具体区分如下

  • 指定线名称,网格,区域

Grid:

  1. grid-template-rows/grid-template-columns:指定线名称,网格
  • [线1] 值1|auto|Nfr|minmax(100px, 1fr) [线2] ....
  • repeat(N|auto-fill,值1[ 值2 [值3...])
  • 允许同一根线有多个名字 [线1 线11 ...]
  • 若没有指定线名称,则缺省为number,从1开始
  1. grid-template-areas:指定区域
  • 不同网格可以同名
  • 有些区域不需要利用,则使用"点"(.)表示
  1. grid-auto-rows/grid-auto-columns:剩余网格 行/列高

Flex:

总结

  • Grid:拥有完整的网格布局属性(二维),毕竟穷举法所以还拥有设置剩余网格行/列高
    独立源:可以设置区域及项目选择区域而与书写文档脱钩=>好维护
  • Flex:无,而是根据内容布局(弹性)
    半个独立源:order ↓会介绍
  • =>Grid在全局布局方面大胜,是元帅
  • ↓会介绍:Grid在局部布局方面大胜,是大将


  • 排版方向

Grid:

  1. grid-auto-flow:指定排版方向 释义:自动流,即设置流的方向
  • row | column 先行后列(默认)| 先列后行
  • row dense | column dense 某些项目指定位置以后,剩下的项目怎么自动放置

Grid因为很多都是要手动设置的,所以拥有对于其余没指定的属性来设置

  • grid-auto-rows/grid-auto-columns:剩余网格 行/列高
  • grid-auto-flow:row dense | column dense 某些项目指定位置以后,剩下的项目怎么自动放置

Flex:

  1. flex-direction:指定排版方向
  • row | column 先行后列(默认)| 先列后行
  • row-reverse | column-reverse 反转

总结

  • 排版方向Grid和Flex类似,但Flex稍胜一筹


  • 容器内容/项目s内容排版

Grid:

  1. justify-content/align-content:指定容器内容排版
  • start | end | center | stretch | space-around | space-between | space-evenly
  1. justify-items/align-items:指定项目s内容排版 :相对于该项目
  • start | end | center | stretch

Flex:

  1. justify-content/align-content:指定容器内容排版
  • justify-content:flex-start | flex-end | center | space-between | space-around
  • align-content:flex-start | flex-end | center | space-between | space-around | stretch
  • align-content只对多行时生效;一行时失效,效果上面是align-items在起作用
  1. align-items:指定项目s内容排版 :相对于该行
  • flex-start | flex-end | center | baseline | stretch

总结

  • Grid是网格,较为稳健,所以具有完整的属性
    但项目s内容排版:是相对于该项目,较为孤立,项目s内容联动排版无
  • Flex是弹性,所以无justify-items属性,单行时align-items在生效所以align-content无效
    但项目s内容排版:是相对于该行,有很好的联动
  • => 容器内容/项目s内容排版Grid和Flex类似,但Flex稍胜一筹


  • 项目属性

Grid:基本都是关于网格方面:指定项目所处线/区域

  1. grid-row/grid-column:指定项目所处线
  • 前row|column线1名称 / 后row|column线2名称
  • span关键字(表示跨越/占用几个网格): span 2/5 === 3/5 === 3/span 2
    若没有指定线名称,则可以采用缺省线名称,number,从1开始
    缺省:则由grid-auto-flow属性决定
  1. grid-area:指定项目项目所处区域
  • 区域名称
  • 上线 / 右线 / 底线 / 左线 :逆时针,方便记忆
    等同于 <row-start> / <column-start> / <row-end> / <column-end>
    作用和grid-row/grid-column是一样的,优先级一样,书写顺序后面会覆盖

Flex:基本都是关于弹性方面:放大/缩小比例,伸缩基准值

  1. flex-grow/flex-shrink:放大/缩小比例
  • flex-grow:默认0,即如果存在剩余空间,也不放大
    计算:item1/items * 剩余空间=item放大空间
  • flex-shrink:默认为1,即如果空间不足,该项目将缩小(弹性=>空间不够肯定要压缩)
    计算:item1/items * 压缩空间=item缩小空间
  1. flex-basis:伸缩基准值
  • 默认值为auto
  1. flex:是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto
  • 即默认值为0 1 auto ,即不放大,平均缩小
  • auto:对应 (1 1 auto),即平均放大,平均缩小
  • none :对应 (0 0 auto),即不放大,不缩小。若项目flex都设置none,则会溢出

相似属性

  • z-index:多个项目所处区域有交集,可以设置层级
    Grid一大特点:网格分层
  • order:定义项目的排列顺序,默认值为0,值和z-index一样。可以为负数
    Flex弹性布局,逊色于Grid的文档独立流

共同属性

  • justify-self / align-self:设置该项目内容私有排版
    但Flex没有justify-self,原因嘛,还是因为内容弹性嘛 (^ _ ^)
    值:等同于justify-items / align-items值:start | end | center | stretch
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353

推荐阅读更多精彩内容

  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 4,486评论 0 26
  • CSS Grid(网格) 布局(又称为 “Grid(网格)” ),是一个二维的基于网格的布局系统它的目标是完全改变...
    诺CIUM阅读 1,308评论 0 3
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,466评论 0 6
  • 网格线(Grid Line) 构成网格结构的分界线。它们既可以是垂直的(“列网格线(column grid lin...
    晚溪呀阅读 1,173评论 0 0
  • 醒的次数最多的一晚 两点醒 三点醒 四点四十六醒 六点二十五醒 不知为啥 总是梦见欣颖 早安!
    灵空_6039阅读 115评论 0 0