[Grid布局] - 快到格子里来(下)

简介: CSS的网格布局模块提供了一个基于网格的布局系统,能够以行和列来进行布局,使其更容易设计网页,而不必使用浮标和定位。 只要给块级元素设置display:grid 或者给内联元素设置display:inline-grid, Grid布局就可以创建

grid-area


该属性表示当前网格所占用的区域,可以被用作速记属性为 网格行启动,网格列启动,网格行截止和网格列截止的特性


语法:


grid-area: <name> | <row-start> / <column-start> / <row-end> / <column-end>


可能取值:


  • : 区域名称。由grid-template-areas属性创建。


  • /  /  / : 占据网格区域的纵横起始位置。


eg:使“item1”上行线1和列线2开始,上行线4和列线3结束


.item1 {
  grid-area: 1 / 2 / 4 / 3;
}



eg:使“item1”对行线1和列2号线和跨度2行跨度3列结束


.item1 {
  grid-area: 1 / 2 / span 2 / span 3;
}



命名网格项目


grid-area属性也可以为网格项目Item命名


.item1 {
  // item1将被命名为“myArea”
  grid-area: myArea;
}
.grid-container {
  //item1跨越的3列网格布局所有3列:
  grid-template-areas: 'myArea myArea myArea';
}



.item1 {
  // item1将被命名为“myArea”
  grid-area: myArea;
}
.grid-container {
  //item1跨越的5列网格布局中的3列
  grid-template-areas: 'myArea myArea myArea . . ';
}



.item1 {
  grid-area: myArea;
}
.grid-container {
  // 让item1跨越两列和两行:
  grid-template-areas: 'myArea myArea . . .' 'myArea myArea . . .';
} 



隐式网格


使用grid-auto-rows, grid-auto-columns, grid-auto-flow来设置隐式网格


  • grid-auto-rows:隐含创建的网格行的大小


  • grid-auto-columns:隐含创建的网格列的大小轨道


  • grid-auto-flow:隐含创建的网格的默认流方向


.grid-container {
  display: grid;
  background-color: #2196F3;
  padding: 10px;
  grid-gap:5px;
  // 行高度70px
  grid-template-rows: 70px;
  // 2列铺满各站1半
  grid-template-columns: repeat(2, 1fr);
  // 隐含创建的网格行的大小140px
  grid-auto-rows: 140px;
  // 隐含创建的网格的默认流方向: 行方向
  grid-auto-flow: row;
} 



Grid属性集


作用在grid容器上 作用在grid子项上
grid-template-columns(列宽) grid-column-start
grid-template-rows(行高) grid-column-end
grid-template-areas(命名网格) grid-row-start
grid-template grid-row-end
grid-column-gap(列间距) grid-column
grid-row-gap grid-row
grid-gap grid-area
justify-items(水平呈现方式) justify-self
align-items(垂直呈现方式) align-self
place-items (水平垂直呈现方式) place-self
justify-content(水平分布方式)
align-content(垂直方向的分布方式)
place-content
grid-auto-columns(隐式创建列大小)
grid-auto-rows
grid-auto-flow
grid(网格布局)


Grid与Flex主要区别


  • Grid布局则适用于更大规模的布局(二维布局), 处理一些不规则和非对称的设计。


  • Flexbox布局最适合应用程序的组件和小规模布局(一维布局)


虽然grid存在一定的兼容(如下图),但是依照flex的趋势,grid的时代必然会来



参考文章




相关文章
|
7天前
|
前端开发 容器
前端基础(十五)_多栏布局(两列自适应布局、圣杯布局---三列布局、双飞翼布局--三列布局、等高布局)
本文介绍了前端开发中的多种自适应布局技术,包括两列自适应布局、圣杯布局(三列布局)、双飞翼布局(三列布局)和等高布局。文章通过代码示例展示了如何使用HTML和CSS实现这些布局,以及如何通过flex布局简化实现过程。
31 2
|
3月前
|
前端开发
CSS 自测题 -- 用 flex 布局绘制骰子(一、二、三【含斜三点】、四、五、六点)
CSS 自测题 -- 用 flex 布局绘制骰子(一、二、三【含斜三点】、四、五、六点)
28 0
|
10月前
|
前端开发
【项目经验】elementui抽屉(从下到上方向)实现向上拉伸
elementui抽屉二次封装(可以向上拉伸)改变抽屉高度
164 0
|
前端开发 容器
Grid实现自适应九宫格布局
Grid实现自适应九宫格布局
283 0
|
容器
Flex弹性盒子布局实现骰子6点
Flex弹性盒子布局实现骰子6点
128 0
Flex弹性盒子布局实现骰子6点
|
前端开发 容器
通俗重制系列--Grid布局
通俗重制系列--Grid布局
126 0
|
前端开发 JavaScript
flex给我实现一个对角线布局
flex在css布局中的是一个经常考察的知识点,虽然垂直居中问题已经问得快烂大街了,flex你虽然总是在用,但是总会有你不知道的盲点
327 0
flex给我实现一个对角线布局
重新认识grid布局(下)
重新认识grid布局(下)
|
算法 容器