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. AR/VR逐渐回暖 联合安防步入未来
  2. ASP.NET Core 异常和错误处理 - ASP.NET Core 基础教程 - 简单教程,简单编程
  3. 领扣-104/111 二叉树的最大深度 Maximum Depth of Binary Tree MD
  4. FeiBoStr 斐波那契
  5. 计算分数加减表达式的值
  6. 为什么linux自带python_为什么一些linux自带python,而不是C,C++,java等其他编程语言?...
  7. Linux入门笔记——cal、date、free、clear、history、man、whatis、uname
  8. win7发现不了无线网络怎么办 win7发现不了无线网络的解决办法
  9. sql server 群集_SQL Server中的Microsoft群集
  10. uml学习之图书借阅简化用例图创建
  11. centos7永久修改主机名
  12. 2017年2月14日
  13. Unity写lua代码的vs插件:BabeLua
  14. CactiEZ V10.1 中文版 Cacti中文 安装教程cactiezv10.iso
  15. win10安装过程中一直卡在海内存知己天涯若比邻界面解决方法
  16. steam服务器维护6月28,绝地求生6月28日更新到几点 吃鸡更新维护公告
  17. linux su无效_linux su 认证失败解决方案转
  18. python get sheet_python复制excel的sheet表的方法
  19. 一. activiti项目的搭建
  20. python键盘记录器_使用Python设计键盘记录器

热门文章

  1. 《2021 年中国视频云场景应用洞察白皮书》联合首发!
  2. 定位Flutter内存问题很难么?
  3. Linux纯干货知识总结|面试专用
  4. 浅谈双人游戏的设计与魅力——由《双人成行》引发的思考
  5. 第七届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
  6. 入职体检——项目列表(11项)
  7. .Net软件工程师必备面试题134道
  8. GoldenGate故障处理-表空间不足
  9. OCM备考 三. Managing Database Availability 之RMAN日常操作
  10. 爬取及分析天猫商城冈本评论(二)数据处理