Grid

概念

Grid布局是一种二维布局方法,能够在行和列中布置内容。因此在任何网格中都有两个轴,横轴(即行轴,内联)和纵轴(即列轴,块)。

什么是网格

网格是一组相交的水平线和垂直线,它定义了网格的列和行。我们可以将网格元素放置在与这些行和列相关的位置上

固定或弹性的轨道的大小
  • 可以使用固定的轨道尺寸创建网格,比如使用像素单位。
  • 也可以使用比如百分比或者fr(专门为此目的创建的新单位)来创建有弹性尺寸的网格

网格容器

通过在元素上声明 display:grid 或 display:inline-grid 来创建一个网格容器。一旦我们这样做,这个元素的所有直系子元素将成为网格元素。

网格轨道

通过 grid-template-columns 和 grid-template-rows 属性来定义网格中的行和列。这些属性定义了网格的轨道。一个网格轨道就是网格中任意两条线之间的空间。

fr单位

轨道可以使用任何长度单位进行定义。
网格还引入了一个新的长度单位fr代表网格容器中可用空间的一等份。

在轨道清单中使用repeat()

有着多轨道的大型网格可使用 repeat() 标记来重复部分或整个轨道列表。

.wrapper {display: grid;grid-template-columns: 1fr 1fr 1fr;
}

两者等价

.wrapper {display: grid;grid-template-columns: repeat(3, 1fr);
}

Repeat 语句可以用于重复轨道列表中的一部分。在下面的例子中我创建了一个网格:它起始轨道为20像素,接着重复了6个1fr的轨道,最后再添加了一个20像素的轨道。

.wrapper {display: grid;grid-template-columns: 20px repeat(6, 1fr) 20px;
}

隐式网格

如果在网格定义之外又放了一些东西,或者因为内容的数量而需要的更多网格轨道的时候,网格将会在隐式网格中创建行和列.
按照默认,这些轨道将自动定义尺寸,所以会根据它里面的内容改变尺寸。
也可以在隐式网格中用 grid-auto-rows 和 grid-auto-columns 属性来定义一个设置大小尺寸的轨道。

轨道大小 和 minmax()

在设置一个显式的网格或者定义自动创建的行和列的大小的时候,我们也许想给网格一个最小的尺寸,确保他们能扩大到容纳他里面添加的内容。
网格用minmax()函数来解决这个问题。

网格线

当我们定义网格时,我们定义的是网格轨道,而不是网格线。Grid 会为我们创建编号的网格线来让我们来定位每一个网格元素.
网格线的编号顺序取决于文章的书写模式。在从左至右书写的语言中,编号为 1 的网格线位于最左边。在从右至左书写的语言中,编号为 1 的网格线位于最右边。

跨轨道放置网格元素

使用了grid-column-start, grid-column-end, grid-row-start 和 grid-row-end 属性

网格单元

一个网格单元是在一个网格元素中最小的单位, 从概念上来讲其实它和表格的一个单元格很像。

网格区域

网格元素可以向行或着列的方向扩展一个或多个单元,并且会创建一个网格区域。网格区域的形状应该是一个矩形 - 也就是说你不可能创建出一个类似于“L”形的网格区域。

网格间距

在两个网格单元之间的 网格横向间距 或 网格纵向间距 可使用 grid-column-gap 和 grid-row-gap 属性来创建,或者直接使用两个合并的缩写形式 grid-gap。

嵌套网格

一个网格元素可以也成为一个网格容器。

CSS属性

display
  • grid :生成一个块级网格
  • inline-grid :生成一个内联网格
  • subgrid :嵌套网格
grid-template-columns
  • 该属性是基于 网格列. 的维度,去定义网格线的名称和网格轨道的尺寸大小。
  • 这些值表示 网格轨道(Grid Track) 大小,它们之间的空格表示网格线。
grid-template-rows
  • 该属性是基于 网格行 的维度,去定义网格线的名称和网格轨道的尺寸大小。
grid-template-areas
  • 该属性是 grid areas 在CSS中的特定命名.
  • 通过引用 grid-area 属性指定的 网格区域(Grid Area) 名称来定义网格模板。重复网格区域的名称导致内容跨越这些单元格。一个点号(.)代表一个空的网格单元。这个语法本身可视作网格的可视化结构。
grid-template
  • 用于定义 grid-template-rows ,grid-template-columns ,grid-template-areas 缩写(shorthand)属性。
grid-row-gap
  • 设置行元素之间的间隙(gutter)大小
grid-column-gap
  • 设置元素列之间的间隔(gutter)大小
grid-gap
  • grid-row-gap 和 grid-column-gap 的缩写语
justify-items
  • 沿着 行轴线(row axis) 对齐 网格项(grid items) 内的内容
  • justify-items: start | end | center | stretch;
align-items
  • 沿着 列轴线(column axis) 对齐 网格项(grid items) 内的内容
  • align-items: start | end | center | stretch;

demo

demo传送地址

转载于:https://www.cnblogs.com/horizon-jens/p/9909750.html

Css网格布局-Grid布局相关推荐

  1. 【CSS】栅格(Grid)布局

    [CSS]栅格(Grid)布局 文章目录 [CSS]栅格(Grid)布局 声明栅格 划分行列 一个

  2. css display:grid布局

    简介 CSS Grid布局 (又名"网格"),是一个基于二维网格布局的系统,主要目的是改变我们基于网格设计的用户接口方式.如我们所知,CSS 总是用于网页的样式设置,但它并没有起到 ...

  3. 深入了解css中的grid布局

    只说概念可能理解的慢,我们通过做一个小布局,把Gird相关的知识点总结一下.保证你看完之后,grid布局也就学的差不多了. 先看看我们的第一个小例子最终的效果图: 下面是我们的HTML代码 <d ...

  4. 最强大的 CSS 布局 —— Grid 布局

    Grid 布局是什么? Grid 布局即网格布局,是一种新的 CSS 布局模型,比较擅长将一个页面划分为几个主要区域,以及定义这些区域的大小.位置.层次等关系.号称是最强大的的 CSS 布局方案,是目 ...

  5. CSS基本布局——grid布局

    grid布局简介: Grid布局是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以看作是二维布局. 基本概念: 容 ...

  6. CSS3动画大全(附源码)flex布局,grid布局3d旋转,图像模糊,文字发光

    CSS3动画大全(附源码)3d旋转,图像模糊,文字发光! 文章目录 CSS3动画大全(附源码)3d旋转,图像模糊,文字发光! html代码 css grid布局 flex布局 文字发光 & 图 ...

  7. Web:flex模拟移动商城首页页面布局/grid布局的相关属性

    flex模拟移动商城首页页面布局 1.布局页面导航 大家可以看到图片上的红色边框,用了flex布局,布局了一个多行容器,采用的是无序列表ul. css代码块 /* 设置导航样式,定义flex容器 */ ...

  8. CSS 布局 - grid - 二维布局方法 - 网格布局

    目录 一.grid 二维布局模块 二.基本概念 理解逻辑 - 容器 - 项目 理解行列 - 二维布局 理解单元格 网格线 三.容器属性 使用方法 CSS 重要属性配置 grid-template-co ...

  9. css 网格布局_我从CSS网格布局中学到的东西

    css 网格布局 by Jennifer Wjertzoch 珍妮弗·维佐奇 我从CSS网格布局中学到的东西 (Things I've learned about CSS grid layout) W ...

最新文章

  1. 春节充电 | 送你10本机器学习和数据科学必读书(附PDF下载)
  2. 在WP7下自定义RelativeSource 的Binding
  3. 【前端开发与项目管理】
  4. 安卓模拟器 Genymotion 安装
  5. python闰年多一天_记一个 python datetime 闰年问题
  6. latex 学习资料
  7. python 太灵活_Python中的灵活参数
  8. MySQL 事物的4种隔离级别
  9. tde数据库加密_在其他服务器上还原启用了透明数据加密(TDE)的数据库
  10. 安川g7接线端子图_安川G7变频器各接线端子功能说明
  11. java 实现jpg、png、tif、gif 任意图像格式转换(多页tif合并)
  12. 电脑上既好看又好用的便签软件推荐
  13. 微博宕机复盘:什么样的技术架构,可支持80个明星并发出轨?
  14. 用Java实现给图片添加文字水印
  15. Drill系列(1):Dremel的原理
  16. 程序员副业之如何利用空余时间从博客中赚钱?
  17. 团队公司地点拍照打卡签到活动小程序 document.forms[“myForm“][“fname“]
  18. php 作业 的背景,新课课程背景下中学语文作业布置的思考(网友来稿)a href=/friend/list.php(教师中心专稿)/a...
  19. 公司职位简称表 C?O
  20. c++ eof()函数

热门文章

  1. 用管控策略设定多账号组织全局访问边界
  2. Dubbo 版 Swagger 来啦!
  3. 大促场景下云通信高可用、稳定性实战
  4. ubuntu mysql 迁移_(最新)ubuntu20.04LTS版迁移mysql8.0数据库的方法
  5. SQL基础【二十、索引】(超细致版本,前理论,后实践,应对sql面试绰绰有余)
  6. 如何诊断RAC数据库上的“IPC Send timeout”问题?
  7. 去IOE:去掉“IE”就Ok?
  8. Oracle dbtimezone与os时区不一致的解决办法
  9. solaris下同一机器2个实例之间切换
  10. linux系统中查看gcc内置宏定义的命令方法