目录

一、什么是Grid布局

二、容器属性值

2.1 grid-template-rows和grid-template-columns

2.1.1 grid-template-columns

2.1.2 grid-template-rows

2.2 row-grap和column-grap

2.2.1 row-grap

2.2.2 column-grap

2.3 grid-template-area

2.4 grid-auto-flow

2.5 justify-items(水平方向)和 align-items(垂直方向)

2.5.1 justify-items

2.5.2 align-items

2.6 justify-content (水平方向) / align-content (垂直方向)

2.7 grid-auto-columns 和 grid-auto-rows

三、项目属性

3.1 grid-column-start / grid-column-end 和 grid-row-start / grid-row-end

3.2 grid-column / grid-row

3.3 grid-area

3.4 justify-self / align-self / place-self

3.4.1 设置justify-self

3.4.2 设置align-self

3.4.2 设置place-self

四、基本概念图分享


一、什么是Grid布局

grid布局将容器划分为 行 和 列,产生单元格,可以将其看作为二维布局,也称为网格布局

二、容器属性值

2.1 grid-template-rows和grid-template-columns

需要多少行或列,根据自己需求填写,属性值个数,不填写则自动分配

首先准备容器和项目,并用不同的颜色区分项目

<body><div class="main"><div class="item item-1">1</div><div class="item item-2">2</div><div class="item item-3">3</div><div class="item item-4">4</div><div class="item item-5">5</div><div class="item item-6">6</div><div class="item item-7">7</div><div class="item item-8">8</div><div class="item item-9">9</div><div class="item item-10">10</div></div>
</body>
.main{display: grid;width: 600px;height: 600px;border: 10px solid skyblue;
}
.item{font-size: 50px;background-color: red;color: #fff;
}.item-1{background-color: orangered;
}
.item-2{background-color: orange;
}
.item-3{background-color: palegreen;
}
.item-4{background-color: palevioletred;
}
.item-5{background-color: papayawhip;
}
.item-6{background-color:peru;
}
.item-7{background-color:pink;
}
.item-8{background-color:royalblue;
}
.item-9{background-color: saddlebrown;
}
.item-10{background-color: slateblue;
}

页面效果展示 - 容器和项目

2.1.1 grid-template-columns

(1)为容器.main的grid-template-columns赋值,例如:规定项目为3列且每个项目的宽度为100px

    /* grid-template-columns: 100px 100px 100px; *//* repeat()函数,简化重复的值 grid-template-columns: repeat(<重复次数>,<数值>) */grid-template-columns: repeat(3,100px);

页面效果展示

(2)grid-template-columns: repeat(auto-fill,100px),其中auto-fill,有时在单元格大小是固定时,容器未规定宽高时会自动填充

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

页面效果展示 - 设置宽和高600px

页面效果展示 - 未设置宽高,随浏览器伸缩自动填充

(3)fr,表示比例关系,网格布局提供了fr关键字

grid-template-columns: repeat(3,1fr);

例如:设置容器宽和高都为600px,grid-template-columns: repeat(3,1fr),分为3分,每份一等分,即每份容器宽度为200px

页面效果展示 - fr

grid-template-columns: 1fr 2fr 3fr;

页面效果展示 - fr,占据份额不同,容器宽和高都为600px,第3份占据总份额的一半,即宽度为300px

(4)minmax() 函数,产生一个长度范围,接受两个参数,分为最小值和最大值

    grid-template-columns: 1fr minmax(300px,1fr);

表示第二列项目宽度最小值为300px,最大值为1fr

页面效果展示

页面效果展示 - 缩小浏览器使第二列项目宽度达到300px

2.1.2 grid-template-rows

为容器.main的grid-template-rows赋值

    /* grid-template-rows: 100px 100px 100px 100px; */grid-template-rows: repeat(4,100px);

页面效果展示

2.2 row-grap和column-grap

item相互之间的距离

2.2.1 row-grap

    row-gap: 20px;

页面效果展示

2.2.2 column-grap

    column-gap: 20px;

页面效果展示

若行和列间距相同则可以缩写

    gap: 20px;

2.3 grid-template-area

一个区域由单个单元格或多个单元格组成,具体使用,由个人决定

区域的命名会影响到网格线,每个区域的起始网格线会自动命名为 区域名-start,终止网格线会自动命名为 区域名-end

    grid-template-areas: 'a b c' 'd e f' 'g h i';

区域不需要利用则用点代替

    grid-template-areas: 'a . c' 'd . f' 'g . i';

2.4 grid-auto-flow

划分网格后,容器的子元素会按照顺序,自动放置在每一个网格。默认的放置顺序是先行后列。

    grid-auto-flow: row;

页面效果展示 - grid-auto-flow属性赋值:row

grid-auto-flow: row dense;

添加dense能够更好得利用空间

页面效果展示 - 未添加dense

页面效果展示 - 添加dense

2.5 justify-items(水平方向)和 align-items(垂直方向)

设置单元格内水平和垂直的对齐方式

2.5.1 justify-items

justify-items: strat / end / center / stretch

    justify-items: center;

页面效果展示 - justify-items: center

2.5.2 align-items

    align-items: center;

页面效果展示 - align-items: center

    /* 简写,place-items: <justify-items值> <align-items值>; */place-items: center center;

2.6 justify-content (水平方向) / align-content (垂直方向)

设置整个内容区域的水平和垂直的对齐方式

justify-content: start / end | center / stretch / space-around / space-between / space-evenly
align-content: sstart / end | center / stretch / space-around / space-between / space-evenly

    justify-content: center;

页面效果展示

    align-content: center;

页面效果展示

    justify-content: space-around;align-content: space-around;

页面效果展示

2.7 grid-auto-columns 和 grid-auto-rows

用来设置多出来的项目宽和高

    grid-template-columns: repeat(3,100px);grid-template-rows: repeat(3,100px);grid-auto-rows: 50px;

页面效果展示

三、项目属性

3.1 grid-column-start / grid-column-end 和 grid-row-start / grid-row-end

用来指定item的具体位置, 根据在哪根网格线

例如:项目1从网格线1开始到网格线3结束

.item-1{background-color: orangered;grid-column-start: 1;grid-column-end: 3;
}

页面效果展示.

span跨越几根网格线

    /* grid-column-start: 1; *//* grid-column-end: 3; */grid-column-start: span 2;/* 效果相同 */

3.2 grid-column / grid-row

grid-column: 开始的网格线 / 结束的网格线

    /* grid-column-start: 1; *//* grid-column-end: 3; */grid-column: 1 / 3;/* 效果相同 */

3.3 grid-area

指定项目放在哪一个区域

容器.main设置区域

    grid-template-areas: 'a a a' 'b b b' 'c c c';

项目.item item-1设置区域

    grid-area: b;

页面效果展示

grid-area属性还可用作grid-row-start、grid-column-start、grid-row-end、grid-column-end的合并
简写形式,直接指定项目的位置

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

    grid-area: 1 / 1 / 3 / 3;

3.4 justify-self / align-self / place-self

justify-self属性设置单元格内容的水平位置(左中右),跟justify-items属性的用法完全一致,
但只作用于单个项目(水平方向)

align-self属性设置单元格内容的垂直位置(上中下),跟align-items属性的用法完全一致,
也是只作用于单个项目(垂直方向)

place-self属性是align-self属性和justify-self属性的合并简写形式

justify-self: start / end / center / stretch

align-self: start / end / center / stretch

place-self: <justify-self属性值> <align-self属性值>

3.4.1 设置justify-self

justify-self: center;

页面效果展示 - justify-self: center

3.4.2 设置align-self

    align-self: center;

页面效果展示 - 添加上align-self: center

3.4.2 设置place-self

与设置justify-self: center且align-self: center 效果相同

    place-self: center center;

四、基本概念图分享

基本概念图片来源与B站 耕耕老师(id:耕耕技术宅)作图,感觉做得很棒,可以作为基本概念参考图,简单明了

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

  1. grid layout网格布局详解

    grid layout网格布局详解 什么是grid layout grid的特点 grid css属性的基础知识 创建一个grid布局 创建一个网格 隐性网格与显性网格 尺寸单位fr repeat函数 ...

  2. Grid:网格布局基础简述

     一.Grid:网格布局 Grid顾名思义就是"网格",它的子控件被放在一个一个实现定义好的小格子里面,整齐配列.Grid和其他各个Panel比较起来,功能最多也最为复杂. 要使用 ...

  3. css【详解】grid布局—— 网格布局(栅格布局)

    网格布局(Grid)是最强大的 CSS 布局方案 grid布局 和 flex布局的区别 Flex 布局是轴线布局,只能指定"项目"针对轴线的位置,可以看作是一维布局. Grid 布 ...

  4. CSS布局—网格布局Grid(一)

    CSS网格可以定义由行和列组成的二维布局,然后将元素放置到网格中.有些元素可能只占据网格的一个单元,另一些元素则可能占据多行或多列.网格的大小既可以精确定义,也可以根据自身内容自动计算.你既可以将元素 ...

  5. grid 栅格/网格布局学习笔记

    1.前言 栅格布局或者说网格布局是很好用的东西,像一些商城类的排版就很适合用栅格布局,但是存在一定的兼容性问题,兼容性暂时还没有研究,这边学习总结是针对grid也就是栅格布局的使用的学习总结,下面将介 ...

  6. grid layout(网格布局、栅格布局、grid布局):bootstrap,请到历史书报道!

    grid布局就是表格布局(grid layout),或者称之为栅格布局也行.因为栅格布局的概念来自于bootstrap,这里使用栅格布局来与bootstrap做关联,是因为它俩是描述的同一个东西.自从 ...

  7. CSS弹性布局网格布局

    一.Flexbox 弹性框布局模块,可更轻松设计灵活的响应式布局,而无需使用浮动或定位. 首先应给容器设置display 属性 <div class="flex-container&q ...

  8. 【鸿蒙 HarmonyOS】UI 布局 ( 网格布局 TableLayout )

    文章目录 一.网格布局 TableLayout 一.网格布局 TableLayout 网格布局 需要设置整个布局中有多少行 , 多少列 , 每个单元格都可以设置一个组件 , 这个组件可以是单个 , 也 ...

  9. 安卓学习笔记11:常用布局 - 网格布局

    文章目录 零.学习目标 一.网格布局概述 1.布局特点 2.继承关系图 3.常用属性 (1)针对布局的属性 (2)针对子控件的属性 二.案例演示--计算器界面 (一)运行效果 (二)涉及知识点 (三) ...

最新文章

  1. 2020年度最佳的23个的机器学习项目(附源代码)
  2. linux下织梦cms安装环境配置文件,Mac本地环境配置以及安装织梦CMS,增加新的坑解决办法...
  3. 【Spring Cloud】Redis缓存接入监控、运维平台CacheCloud
  4. android照片备份软件下载,照片备份云相册app下载-照片备份云相册下载V1.9安卓版-西西软件下载...
  5. 装饰者模式(Decorator)
  6. Java进阶之网络编程
  7. 二叉树——基本知识+python实现
  8. Web UI设计师的CSS优化工具 25+
  9. Linux Apache服务详解——用户个人主页实战
  10. Python_notes_05
  11. 高可用之2——存储b
  12. 双光耦开关电源电路图_光耦817应用电路图汇总(PC817光电耦合器/开关电源/TL431)...
  13. 云计算,大数据,人工智能本质和概念
  14. 搭建完美的数学计算环境: iTeXmacs+maxima
  15. Beta版本 为什么程序员总是分不清万圣节和圣诞节?因为 Oct 31 == Dec 25。
  16. Python四大神兽(迭代器生成器闭包装饰器)
  17. 网页中插入Flash动画(.swf)代码和常用参数设置
  18. Servlet 三大作用域
  19. Discriminative Reasoning for Document-level Relation Extraction
  20. 网易笔试题 寻找第K大

热门文章

  1. html li 不换行显示,css如何让li强制不换行?
  2. Docker Desktop for Windows 安装步骤
  3. 扫雷游戏【C语言实现】
  4. docker安装tomcat8并实现目录映射端口映射
  5. 短信备份到另一个手机android,旧手机的短信怎么转移到新手机上?三种方法总有一种适合你...
  6. SaleSmartly(ss客服)怎么玩转Instagram自动化?
  7. 专利检索为什么那么慢?
  8. 计算机课网络论文,计算机网络课论文.docx
  9. 多商户商城系统功能拆解35讲-平台端营销-拼团商品
  10. 使用Vue和bootstrap实现简单购物车功能