Grid布局 | 青训营笔记

147 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第2天

1.Grid布局

Grid布局是将容器划分成“行"和“列”,产生单元格,然后指定"项目所在”的单元格 ,可以看作是二维布局

2.基本属性

2.1.grid-template-columns和grid-template-rows

  • 想要多少行或者多少列,就通过填写相应属性值的个数来实现

grid-template-columns:100px 100px 100px 100px;//显示为4列,每一列宽度为100px,等同于grid-template-columns:repeat(4,100px);

  • 关键字fr(片段的意思),更加方便的表示比例关系

gird-template-columns: 1fr 2fr 1fr;//行宽分成4份,各占1 2 1 份

  • auto-fill属性,单元格大小固定时,容器大小不确定时,这个属性就可以自动填充

grid-template-columns: repeat(auto-fill,100px)

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

grid-template-columns: 1fr minmax(150px 1fr);

2.2.grid-gap

  • grid-column-gap:表示列之间的宽度
  • grid-column-gap:表示行之间的宽度
  • grid-gap:表示行与列之间的宽度

2.3.grid-template-areas

  • 决定一个区域由多少个单元格组成
  • 不需要利用的区域,则用“.”表示
  • 名字相同表示在一个区域
  • grid-template-areas: 'a b c' 'd e f' 'g . h'

2.4.grid-auto-flow

  • 划分网格后,容器的子元素会按照默认顺序(先行后列)来放置
  • 可以通过这个属性来改变放置的顺序

2.5. grid-column-start/grid-column-end和grid-row-start/grid-row-end

  • 用来指定item的具体位置
  • grid-column-start:1;grid-column-end: 3;//项目占用了从第一根列网格线到第三根列网格线
  • 上面的缩写为gird-column: 1 / 3;
  • gird-area属性还可用作这四个属性的合并简写形式,直接指定项目的位置

grid-area:<row-start> / <column-start> / <row-end> / <column-end>;

3.其他属性

  • justify-content和align-content属性……,与flex类似