grid网格布局使用
定义
grid布局是指对网页进行划分成一个一个网格,然后根据自己的要求,可以任意组合。
以前写类似的功能,很麻烦,需要写很多的CSS去控制,有了grid就很方便了,可以随意进行组合。
跟flex有很多地方相似,包括有部分属性。不同的地方也很突出,尤其是flex是一维,只有横向。而grid是有横向和纵向。另外grid功能要更强大点。
基本属性
display
通过对父元素进行设置display:grid,表示里面包裹的元素全是网格布局。
display:grid
grid-template-columns/grid-template-cols
grid-template-columns:表示每行的宽度,有几个表示每行有几列,多出部分会往下排列
grid-template-cols:表示每列的宽度
.grid{
display: grid;
grid-template-columns: 50px 50px 50px 50px;
grid-template-rows: 50px 50px 50px 50px;
}
以上的代码表示横向的每个item宽度和高度是50px,多出一个就会被自动排布下去。
单位
单位既可以是px,也可以是百分比,或者用auto
- px
.grid{
display: grid;
grid-template-columns: 50px 50px 50px 50px;
grid-template-rows: 50px 50px 50px 50px;
}
- 百分比
.grid{
display: grid;
grid-template-columns: 33.33% 33.33% 33.33%;
grid-template-rows: 33.33% 33.33% 33.33%;
}
- auto 表示宽度或高度是剩余的部分
.grid{
display: grid;
grid-template-columns: 33.33% 10% auto;
grid-template-rows: 33.33% 20% auto;
}
repeat()
repeat()用来处理几个item宽度相同的时候,避免写相同的数值,或者是重复某种模式
.grid{
display: grid;
grid-template-columns: repeat(3,20%);
grid-template-rows: repeat(3,20%);
}
.grid{
display: grid;
grid-template-columns: repeat(3,100px 50px 100px);
grid-template-rows: repeat(3,100px 50px 100px);
}
auto-fill
当容器的宽度不确定,但是item的宽度确定,一行尽可能多的容纳item,这时可以使用auto-fill
.grid{
display: grid;
grid-template-columns: repeat(auto-fill,100px);
}
fr
方便表示比例关系,使用fr来表示
.grid{
display: grid;
grid-template-columns: 1fr 2fr;
}
这表示后者是前者的2倍
fr也可跟px结合,会更方便
.grid{
display: grid;
grid-template-columns:100px 1fr 2fr;
}
上面代码表示第一列是100px,第二列是第三列的一半。
minmax
表示最大值最小值
.grid{
display: grid;
grid-template-columns:1fr 2fr minmax(100px,1fr);
}
上面代码表示,最小值不小于100px,最大值不大于1fr
row-gap,column-gap,gap
row-gap:每行之间的间距
column-gap:每列之间的间距
gap:缩写行/列间距
.grid{
display: grid;
grid-template-columns:1fr 2fr 1fr;
row-gap: 10px;
column-gap: 10px;
}
或者简便的写法:gap
.grid{
display: grid;
grid-template-columns:1fr 2fr 1fr;
gap: 10px;
}
上面代码表示行/列之间的间隔是10px
grid-area/grid-template-area
grid-area和grid-template-area,用来划分区域,grid-area用来指定item的名称,grid-template-area根据子区域的名称来排布,表示展现的方式
.grid{
display: grid;
grid-template-columns:100px 100px 100px;
grid-template-rows: 100px 100px 100px;
grid-template-areas: "div1 div1 div1"
"div2 div3 div4"
"div5 div6 div7"
"div8 div9 div9";
}
.div1{
grid-area: div1;
background-color: tan;
}
上面代码表示div区域指代的grid的div1,整个页面想展示的布局是如下图:
grid-auto-flow
网格布局一般根据横向依次排布,如果想竖向排序,可以设置grid-auto-flow
.grid{
display: grid;
grid-template-columns:100px 100px 100px;
grid-template-rows: 100px 100px 100px;
grid-auto-flow: column;
}
上面的代码表示按照竖向排序。
justify-items/align-items/place-items
justify-items/align-items类似,一个是水平方向上的展示,一个是垂直方向上的展示,属性一致
start:对齐起始位置
end:对齐结束位置
center:居中展示
stretch:拉伸至整个宽度
justify-items:设置的是item的水平方向展现方式。
.grid{
display: grid;
grid-template-columns:100px 100px 100px;
grid-template-rows: 100px 100px 100px;
justify-items: center;
}
上面代码表示每个item居中展示
align-items:设置的是垂直方向上的展现方式。
.grid{
display: grid;
grid-template-columns:100px 100px 100px;
grid-template-rows: 100px 100px 100px;
align-items: center;
}
上面代码表示item在垂直方向上居中展示
place-items是align-items和justify-items的结合
place-items:<align-items><justify-items>
justify-content/align-content/place-content
justify-content/align-content类似,一个是展示水平方向上,一个是展示垂直方向
justify-content:是指整个grid在整个容器中的水平方向展示位置
.grid{
display: grid;
grid-template-columns:100px 100px 100px;
grid-template-rows: 100px 100px 100px;
justify-content: center;
}
上面代码表示整个grid水平展现方式
grid-column-start/grid-column-end/grid-row-start/grid-row-end
可以指定项目的位置,通过控制左右上下的网格线
grid-column-start:左边框的网格线
grid-column-end:右边框的网格线
grid-row-start:上边框的网格线
grid-row-end:下边框的网格线
.div1{
grid-column-start: 2;
grid-column-end: 4;
grid-row-start: 1;
grid-row-end: 3;
background-color: tan;
}
上面代码表示第一个item的位置,开始位置是2,结束位置是4,上面的位置是1,下的位置是3,其他的item根据浏览器排布,由grid-auto-flow来决定,默认是先行后竖
tips:参考阮一峰的文章CSS Grid网格布局教程
grid网格布局使用的更多相关文章
- CSS Grid 网格布局全解析
介绍 CSS Grid(网格) 布局使我们能够比以往任何时候都可以更灵活构建和控制自定义网格. Grid(网格) 布局使我们能够将网页分成具有简单属性的行和列.它还能使我们在不改变任何HTML的情况下 ...
- python之tkinter使用-Grid(网格)布局管理器
# 使用tkinter编写登录窗口 # Grid(网格)布局管理器会将控件放置到一个二维的表格里,主控件被分割为一系列的行和列 # stricky设置对齐方式,参数N/S/W/E分别表示上.下.左.右 ...
- CSS Grid网格布局全攻略
CSS Grid网格布局全攻略 所有奇技淫巧都只在方寸之间. 几乎从我们踏入前端开发这个领域开始,就不停地接触不同的布局技术.从常见的浮动到表格布局,再到如今大行其道的flex布局,css布局技术一直 ...
- 【CSS】343- CSS Grid 网格布局入门
CSS Grid(网格) 布局使我们能够比以往任何时候都可以更灵活构建和控制自定义网格.Grid(网格) 布局使我们能够将网页分成具有简单属性的行和列. 它还能使我们在不改变任何HTML的情况下,使用 ...
- 轻松上手CSS Grid网格布局
今天刚好要做一个好多div格子错落组成的布局,不是田字格,不是九宫格,12个格子这样子,看起来有点复杂.关键的是笔者有点懒,要写那么多div和css真是不想下手啊.多看了两眼,这布局不跟网格挺像吗?c ...
- Grid 网格布局详解
Grid网格布局详解: Grid布局与Flex布局有着一定的相似性,Grid布局是将容器划分成行和列,产生单元格,可以看做是二维布局. 基本概念: 采用网格布局的区域,称为"容器" ...
- TKinter布局之grid 网格布局
1.由于我们的程序大多数都是矩形,因此特别适合于网格 布局,也就是 grid 布局. 2.使用 grid 布局的时候,我们使用 grid 函数,在里面指 定两个参数,用 row 表示行,用 colum ...
- Grid 网格布局
CSS 网格布局(Grid Layout) 是CSS中最强大的布局系统. 这是一个二维系统,这意味着它可以同时处理列和行,不像 flexbox 那样主要是一维系统. 你可以通过将CSS规则应用于父元素 ...
- CSS Grid 网格布局教程
一.概述 网格布局(Grid)是最强大的 CSS 布局方案. 它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局.以前,只能通过复杂的 CSS 框架达到的效果,现在浏览器内置了. 上 ...
随机推荐
- 一个howdoo的预兆
原文链接:https://medium.com/howdoo/its-an-omen-for-howdoo-b33b831ed936 它是一个预兆.它是刻在墙上的.它不会消失 随着越来越多的人对Fac ...
- Spring Boot读取配置文件的几种方式
Spring Boot获取文件总的来说有三种方式,分别是@Value注解,@ConfigurationProperties注解和Environment接口.这三种注解可以配合着@PropertySou ...
- hacknos靶机实战
工具: kali 192.168.1.6 nmap 打开使用nmap -sP 192.168.1.0/24 扫描活跃的主机 发现目标ip 使用nmap 查看开启了什么服务Nmap -v -A -PN ...
- easy tornado
easy tornado 题目分析 这是一道2018年护网杯的题目 /flag.txt /welcome.txt /hints.txt 一共有3个文件. /flag.txt flag in /flll ...
- Mysql基础(五):多表查询、pymysql模块
目录 数据库04 /多表查询.pymysql模块 1. 笛卡尔积 2. 连表查询 3. 子查询 4. pymysql模块 数据库04 /多表查询.pymysql模块 1. 笛卡尔积 将两表所有的数据一 ...
- Mysql基础(四):库、表、记录的详细操作、单表查询
目录 数据库03 /库.表.记录的详细操作.单表查询 1. 库的详细操作 3. 表的详细操作 4. 行(记录)的详细操作 5. 单表查询 数据库03 /库.表.记录的详细操作.单表查询 1. 库的详细 ...
- 数据可视化之PowerQuery篇(十三)Power BI总计行错误,这个技巧一定要掌握
https://zhuanlan.zhihu.com/p/102567707 前一段介绍过一个客户购买频次统计的案例: Power BI 数据分析应用:客户购买频次分布. 我并没有在文章中显示总计行 ...
- python 并发专题(十三):asyncio (一) 初识
https://www.cnblogs.com/wongbingming/p/9095243.html . 本文目录# 如何定义/创建协程 asyncio的几个概念 学习协程是如何工作的 await与 ...
- 关于报错,Whoops! Lost connection to ws://XXX.XXX.XXX.XXX:15684/ws
昨天,在玩rabbitMQ时候,用stompJS从web连接ranbbitMQ时,报了标题的错误消息! 我把我这个html页面代码贴上,简单得讲,就是断开后,重新连接即可.
- Python Ethical Hacking - TROJANS Analysis(4)
Adding Icons to Generated Executables Prepare a proper icon file. https://www.iconfinder.com/ Conver ...