博客列表 >grid 布局基础知识常用属性学习与感想

grid 布局基础知识常用属性学习与感想

移动用户-5435854
移动用户-5435854原创
2020年04月14日 15:47:48779浏览

grid 布局基础知识常用属性学习与感想

创建容器

  1. display: grid;

行优先

  1. grid-auto-flow: row;

列优先

  1. grid-auto-flow: column;

显式行与列

  1. grid-template-rows:100px 100px 100px;
  2. grid-template-columns:100px 100px

对于放置不下的项目,会隐式生成单元格,修改隐式行大小

  1. grid-auto-rows: 150px;
  2. grid-auto-column: 150px;

这种叫固定值:

  1. grid-template-rows: 100px 100px 100px;
  2. grid-template-columns: 100px 100px 100px;

按百分比划分

  1. grid-template-rows: 100px auto 100px;
  2. grid-template-columns: 20% 30% auto;

按比例划分 grid 特有的一个单位:fr (按比例划分)

  1. grid-template-rows: 1fr 1fr 1fr;
  2. grid-template-columns: 1fr 1fr 1fr;

重复设置行和列

  1. grid-template-columns: repeat(3,100)
  2. grid-template-rows: repeat(3,100px);

分组设置

  1. grid-template-columns: repeat(2,50px 100px);

弹性设置

  1. grid-template-columns: repeat(2 minmax(50px 100px));
  2. grid-template-rows: repeat(3 minmax(150px 1fr));

自动填充

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

用网格线划分单元格

  • 第一种写法
  1. grid-row-start: 1;
  2. grid-row-end: 3;
  3. grid-column-start: 1;
  4. grid-column-end: 3;

填满

  1. grid-row-start: 1;
  2. grid-row-end: -1;
  3. grid-column-start: 1;
  4. grid-column-end: -1;
  • 第二种写法 简写
  1. grid-row: 1/3;
  2. grid-column: 3/5;
  • 第三种写法 用偏移量来简写
  1. grid-row-start: 3;
  2. grid-row-end: span 2;
  3. grid-column-start: 1;
  4. grid-column-end: span 2;

或 起始位置就是元素位置

  1. grid-row-end: span 2;
  2. grid-column-end: span 2;
  • 第四种写法 用语义化的标签
  1. grid-row-start: r2-start;
  2. grid-row-start: r1-end;
  3. grid-column-start: c3-start;
  • 第五种简写:小重点:行开始/列开始/行结束/列结束
  1. grid-area: 1/1/2/5;

偏移量简化

  1. grid-area: 1/1 / span 1 / span 4;

或者更简化

  1. grid-area: span 1 / span 4;

甚至更简化 grid-area: span 2;

命名网络区域 相同命名区域会合并

  • grid-template-area

  • 网格区占位符知识 "..."

网格区域线的默认名称

grid-area: header-start / header-start / header-end / header-end; }

设置单元格在容器中的对齐方式,和 flew 相仿,但是代码中去掉 flew 字样

  1. justify-content: center;
  2. align-content: center;
  3. justify-contentspace-between
  4. justify-content:space-around
  5. justify-content:space-evenly
  6. align-contentspace-between
  7. align-content:space-around
  8. align-content:space-evenly

或者简写

place-content

项目在单元格中对齐方式

  1. justify-item: stretch;
  2. align-item: stretch;
  3. align-items: center;
  4. place-items: center center;

某个项目在单元格中的对齐方式:

  1. justify-self: start;
  2. align-self: end;
  3. place-self: center;

每个项目设置一个间隙

  1. column-gap: 5px;
  2. row-gap: 5px;
  3. gap: 5px;

感想:

grid属性和flex属性很像,因此,并不难记,难点是容易和flex混淆。

据说计算机二进制来源于中国的太极八卦,二级制都来自于中国太极八卦,真是一生二,二生三,三生万物,学习越深入,越觉得和我国的太极八卦,五行等有相通之处,代码变化多端,单元格针对容器位置可以变化,项目针对单元格位置,都可以变化,而且项目可以无限大(占很多个单元格),项目又可以无限小(在单元格中还能有各种对齐方式),真的觉得很我国的太极理论太像了。有意思,好玩!

难道宇宙就是二进制代码编写的?我们的世界就是虚拟世界的写出来的东西吗,这难道是人生的真谛?

继续努力,相信孰能生巧。加油。

作业

作业是我上机自己练习的几个东西,上传到了自己的服务器上,基本和课堂内容是一致的。

练习1

练习2

练习3

练习4

练习5

练习6

练习7

练习8

练习9

练习10

练习11

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议
移动用户-54358542020-04-14 19:27:371楼
是的,回头看我单位前端小同事写的代码我还是晕。看懂和能熟练用在项目上看来是两码事。继续努力吧。