[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的时代必然会来



参考文章




相关文章
|
4月前
|
前端开发 容器
前端基础(十五)_多栏布局(两列自适应布局、圣杯布局---三列布局、双飞翼布局--三列布局、等高布局)
本文介绍了前端开发中的多种自适应布局技术,包括两列自适应布局、圣杯布局(三列布局)、双飞翼布局(三列布局)和等高布局。文章通过代码示例展示了如何使用HTML和CSS实现这些布局,以及如何通过flex布局简化实现过程。
148 2
|
6月前
|
前端开发
css 十字分割线(含四等分布局)
css 十字分割线(含四等分布局)
88 2
【项目经验】elementui抽屉(从下到上方向)实现向上拉伸
elementui抽屉二次封装(可以向上拉伸)改变抽屉高度
245 0
|
前端开发 容器
Grid实现自适应九宫格布局
Grid实现自适应九宫格布局
345 0
重新认识grid布局(下)
重新认识grid布局(下)
|
算法 容器
认识盒子模型,盒子模型的边框、内外边距、水平布局、垂直布局、设置浮动、处理高度塌陷的基本方法(3,此节不全)
通过本章认识盒子模型,盒子模型的边框、内外边距、水平布局、垂直布局、设置浮动、处理高度塌陷的基本方法。
99 0
|
前端开发
[Grid布局] - 快到格子里来(中)
CSS的网格布局模块提供了一个基于网格的布局系统,能够以行和列来进行布局,使其更容易设计网页,而不必使用浮标和定位。 只要给块级元素设置display:grid 或者给内联元素设置display:inline-grid, Grid布局就可以创建
|
前端开发 容器
[Grid布局] - 快到格子里来(上)
CSS的网格布局模块提供了一个基于网格的布局系统,能够以行和列来进行布局,使其更容易设计网页,而不必使用浮标和定位。 只要给块级元素设置display:grid 或者给内联元素设置display:inline-grid, Grid布局就可以创建
|
数据可视化 图形学
R可视乎|圆环图
对于饼图,上一次学习《R语言数据可视化之美》的时候主要利用graphics包和ggplot包(可见R可视乎|饼图)。这几天的学习中发现还有一个更加简便的方法——ggpie包。接下来做简单描述,然后进入圆环图的学习。
530 0
R可视乎|圆环图