css的grid布局

grid布局即网格布局是一种二维布局,可以同时控制行和列的排布和对齐方式,grid布局由水平线和垂直线构成,两条水平线之间的区域叫做行轨道,两条垂直线的区域叫做列轨道。

使用这种布局方式只需要给外层容器(父容器)设置 display: grid; 此时容器的直接子元素就会自动称为grid布局的元素。

.grid {display: grid
}

grid布局中的属性:

.grid {/* 为grid盒子开启grid布局 */display: grid;/* 使用grid-template-column 属性指定每列的宽度,可以是固定宽度px,也可以是浮动宽度fr,fr是grid布局专用单位,代表grid剩余空间 *//* grid-template-columns: 300px; *//* 这里有三个数据,就说明grid的分布图为3列形式,这里都相等表示均分剩余空间 */grid-template-columns: 1fr 1fr 1fr;/* 使用column-gap属性设置列间距 */column-gap: 10px;/* 使用row-gap设置行间距 */row-gap: 10px;/* 或者使用gap属性统一设置,一下代码等同于上两行代码 */gap: 10px;}

对元素进行排列时,grid-template-areas属性的用法:

<style>/* 使用grid布局实现三列布局 */.grid {/* 为grid盒子开启grid布局 */display: grid;/* 使用grid-template-column 属性指定每列的宽度,可以是固定宽度px,也可以是浮动宽度fr,fr是grid布局专用单位,代表grid剩余空间 *//* grid-template-columns: 300px; *//* 这里有三个数据,就说明grid的分布图为3列形式,这里都相等表示均分剩余空间 */grid-template-columns: 1fr 1fr 1fr;/* 使用column-gap属性设置列间距 */column-gap: 10px;/* 使用row-gap设置行间距 */row-gap: 10px;/* 或者使用gap属性统一设置,一下代码等同于上两行代码 */gap: 10px;}.grid div {/* width: 33vw; */height: 70px;background-color: skyblue;border: 1px solid black;}.grid1 {margin-top: 50px;display: grid;/* 排列元素我们可以使用grid-template-areas属性,注意这里是设置了三行表格,并且每列用3分进行分布的 */grid-template-areas:"header header header""sidebar content content""footer footer footer"}header {/* 命名此空间为header */grid-area: header;background-color: skyblue;height: 60px;}aside {grid-area: sidebar;background-color: red;height: 60px;}main {grid-area: content;background-color: blue;height: 60px;}footer {grid-area: footer;background-color: green;height: 60px;}
</style>

grid布局的对齐方式

grid布局的对齐方式和flex布局对齐方式类似,有水平方向的行轴和垂直方向的块轴。

在垂直方向上对齐子元素(对网格中的元素)是使用align-items:

.grid {display: grid;align-items: center|end  //沿垂直轴居中、靠下对齐
}

在水平方向上对齐子元素是使用justify-items:

.grid {display: grid;justify-items: center|end|space-between  //居中、靠右、两段对齐
}

当行轨道和列轨道(整体网格)小于grid容器时,还可以对轨道进行对齐:

.grid {display: grid;align-content: center|end; //在垂直方向上使用align-content设置对其方式:justify-content: center|end|between //在水平方向使用justify-content设置对其方式
}

完整代码:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<style>/* 使用flex布局实现三列排布 *//* 使用grid布局实现三列布局 */.grid {/* 为grid盒子开启grid布局 */display: grid;/* 使用grid-template-column 属性指定每列的宽度,可以是固定宽度px,也可以是浮动宽度fr,fr是grid布局专用单位,代表grid剩余空间 *//* grid-template-columns: 300px; *//* 这里有三个数据,就说明grid的分布图为3列形式,这里都相等表示均分剩余空间 */grid-template-columns: 1fr 1fr 1fr;/* 使用column-gap属性设置列间距 */column-gap: 10px;/* 使用row-gap设置行间距 */row-gap: 10px;/* 或者使用gap属性统一设置,一下代码等同于上两行代码 */gap: 10px;}.grid div {/* width: 33vw; */height: 70px;background-color: skyblue;border: 1px solid black;}.grid1 {width: 100vw;height: 100vh;border: 1px solid black;margin-top: 50px;display: grid;/* 排列元素我们可以使用grid-template-areas属性,注意这里是设置了三行表格,并且每列用3分进行分布的 */grid-template-areas:"header header header""sidebar content content""footer footer footer"}header {/* 命名此空间为header */grid-area: header;background-color: skyblue;height: 60px;}aside {grid-area: sidebar;background-color: red;height: 60px;}main {grid-area: content;background-color: blue;height: 60px;}footer {grid-area: footer;background-color: green;height: 60px;}.grid2 {border: 1px solid black;display: grid;grid-template-columns: 300px 300px 300px;gap: 20px;/* 让整个网格居中显示 */justify-content: center;/* 使表格内部的表格元素居中显示 */justify-items: center;}.grid2 div {height: 100px;background-color: skyblue;}
</style><body><div class="grid"><div class="column1">column1</div><div class="column2">column2</div><div class="column3">column3</div><div class="column4">column4</div><div class="column5">column5</div><div class="column6">column6</div></div><div class="grid1"><header>头部</header><aside>侧边栏</aside><main>内容</main><footer>底部</footer></div><div class="grid2"><div class="column1">column1</div><div class="column2">column2</div><div class="column3">column3</div><div class="column4">column4</div><div class="column5">column5</div><div class="column6">column6</div></div>
</body></html>

使用flex布局和grid布局实现三列表格布局:

flex布局:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<style>/* 使用flex布局实现三列排布 */.grid {display: flex;flex-wrap: wrap;/* box-sizing: border-box; */width: 100vw;/* height: 100vh; */}.grid div {width: 33vw;height: 70px;background-color: skyblue;border: 1px solid black;}/* 使用grid布局实现三列布局 */
</style><body><div class="grid"><div class="column1">column1</div><div class="column2">column2</div><div class="column3">column3</div><div class="column4">column4</div><div class="column5">column5</div><div class="column6">column6</div></div>
</body></html>

grid布局实现:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<style>/* 使用flex布局实现三列排布 *//* 使用grid布局实现三列布局 */.grid {/* 为grid盒子开启grid布局 */display: grid;/* 使用grid-template-column 属性指定每列的宽度,可以是固定宽度px,也可以是浮动宽度fr,fr是grid布局专用单位,代表grid剩余空间 *//* grid-template-columns: 300px; *//* 这里有三个数据,就说明grid的分布图为3列形式,这里都相等表示均分剩余空间 */grid-template-columns: 1fr 1fr 1fr;/* 使用column-gap属性设置列间距 */column-gap: 10px;/* 使用row-gap设置行间距 */row-gap: 10px;/* 或者使用gap属性统一设置,一下代码等同于上两行代码 */gap: 10px;}.grid div {/* width: 33vw; */height: 70px;background-color: skyblue;border: 1px solid black;}
</style><body><div class="grid"><div class="column1">column1</div><div class="column2">column2</div><div class="column3">column3</div><div class="column4">column4</div><div class="column5">column5</div><div class="column6">column6</div></div>
</body></html>

css的grid布局相关推荐

  1. php 邮币卡源码,如何使用CSS的Grid布局实现小松鼠邮票的效果(附源码)

    本篇文章给大家带来的内容是关于如何使用CSS的Grid布局实现小松鼠邮票的效果(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 效果预览 源代码下载 每日前端实战系列的全部源 ...

  2. CSS 网格(Grid)布局

    CSS Grid 布局是一种二维布局方式,可以将页面分成行和列,并在其中放置元素.使用 Grid 布局时,需要定义网格容器和网格项目. 第一步,在网格容器元素(通常是一个 div)上设置 displa ...

  3. 2020-09-02 html的RGB与CMYK + css的grid布局 + JS的输入类型选择器返回DOM元素 + 软技能的http3

    2020-09-02 题目来源:http://www.h-camel.com/index.html [html] HTML采用的是RGB颜色还是CMYK颜色?为什么? RGB色彩模式,红绿蓝三原色. ...

  4. 透彻理解css的grid布局

    一.grid布局是什么? grid即网格布局,是css中功能最强大的布局. 二.grid布局中的基本概念 容器:包裹子元素的元素称为容器 项目:被父元素包裹的子元素称为项目 <div class ...

  5. 前端每日实战:143# 视频演示如何用 CSS 的 Grid 布局创作一枚小松鼠邮票

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/YOoXpv 可交互视频 此视频是可 ...

  6. 前端每日实战:142# 视频演示如何用 CSS 的 Grid 布局创作一枚小鸡邮票

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/mGZbmQ 可交互视频 此视频是可 ...

  7. 带你入门 CSS Grid 布局

    前言 三月中旬的时候,有一个对于 CSS 开发者来说很重要的消息,最新版的 Firefox 和 Chrome 已经正式支 CSS Grid 这一新特性啦.没错:我们现在就可以在最流行的两大浏览器上玩转 ...

  8. ext grid 重新布局_如何让你的 CSS Grid 布局有良好的可访问性

    稿件来源:阿里云开发者社区(点击下面"了解更多"查看原文) CSS Grid 可以将元素放入有行和列的网格中,从而让创建二维布局成为可能.有了它,你可以自定义网格的任何形态,例如网 ...

  9. css grid布局

    最近在学习css grid布局,为了避免以后忘记了难得查资料,遍写在博客中方便以后查询! 1,display属性 display有三个值, grid :生成一个块级网格 inline-grid :生成 ...

最新文章

  1. 从高耦合到低耦合到底有多远?
  2. acronym与abbr
  3. 维密求变,“自救”还是“挖坟”?
  4. c语言,c++求最大公因数与最小公倍数方法集合
  5. 在Windows系统安装Nodejs
  6. 网络游戏外挂核心封包揭密
  7. mysql 聚合函数内比较运算符_关于常用 MYSQL 聚合函数,其他函数 ,类型转换,运算符 总结...
  8. rabbitmq消息确认机制及死信队列的使用
  9. sprintboot 发布
  10. 正则表达式入门30分钟——很经典的入门教材
  11. 四皇后问题(同理适用于n皇后问题)图片版
  12. 实验3 IP数据包分析
  13. Ios html5游戏存档,ios存档怎么安装 不用电脑安装IOS存档图文教程
  14. 最最最简单从官方获取最新行政区划代码、区划拼音
  15. 连接共享打印机时提示无法访问计算机,win10共享打印机提示无法访问.你可能没有权限使用网络资源怎么解决...
  16. weborder什么意思_hp web是什么意思
  17. 一刀工具箱-短链接生成工具
  18. 周杰伦中文网登录页面
  19. 在一在二不在三(博弈论的诡计)
  20. 两栏布局的几种实现方式

热门文章

  1. 我国近视人数已超6亿了,千万不要在黑暗的环境里看手机
  2. Mituan-极客时间-漏洞挖掘与智能攻防实战
  3. matlab 预定义变量和变量的管理
  4. ai项目实施_公司在实施AI时必须避免的6个最大陷阱
  5. Disruptor无锁ringbuff实现
  6. 托福百日冲刺(五一记忆)(1)
  7. win10家庭版如何开启远程操控/远程协助?
  8. python中quit函数用法_关于 Python 中的退出命令:sys.exit(n), os._exit(n), quit(), exit()...
  9. 贪心算法 田忌赛马问题
  10. Presto下载地址