css的grid布局

43 篇文章 1 订阅
订阅专栏


原文: https://blog.csdn.net/wanghe1111_/article/details/122953792

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布局
02-01
关于前端页面布局的开发大会ppt,讲解了CSS layout中的Grid
CSScss grid 布局
Riptide
05-14 593
css grid布局出来很久了,可以翻译成栅栏布局,或者网格布局,看到了一个很好的应用,所以写下此篇基础教程。比如我们要达到下面这样一个效果要怎么做?图中有16个元素,我们要其自适应宽度,按照我们以前的想法肯定是直接通过media,媒体查询来完成这个,但是代码肯定不会简洁,但是我们通过grid 布局只需要几行代码!  代码长这样:CSS:#container { display: grid; ...
css-grid布局之美
魏晋-
08-02 363
是一个 CSS 简写属性,可以用来设置以下属性: 显式网格属性。
阮一峰老师 CSS Grid 网格布局教程(转载)
热门推荐
鸭绒的博客
09-30 3万+
特别声明:这篇博客转载于阮一峰老师,转载是为了方便日后复习,实在写的太棒了。 <!-- div class="asset-body" --> <h2>一、概述</h2> 网格布局Grid)是最强大的 CSS 布局方案。 它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局。以前,只能通过复杂的 CSS 框架达到的.
CSS-grid布局
qq_41587763的博客
08-10 1588
上面写了9个元素,分别给了不同的颜色,根据 grid-template-columns和grid-template-rows或者grid-template-columns来设置他们的大小,这里的特殊就是,如果不给里面各个单元格大小,那么设置的宽和行高就会去设置成每个单元格的大小,如果给了大小,那么设置的就是每个单元格之前的间距了。这里指的无限大也就是没有父级设置大小。grid布局就是将容器划分为行和,产生单元格,然后在指定的单元格,可以看作是二维布局,我们一直经常用的flex布局也就可以看作一维布局
使用CSS Grid布局实现网格的流动
09-25
CSS Grid布局是一种二维网格系统,用于页面布局设计。它允许设计者将元素排成行和,通过定义网格轨道大小、网格间隙以及网格区域,实现复杂的布局效果。CSS Grid布局CSS Grid布局属性定义,与传统的浮动布局...
CSS Grid布局教程之浏览器开启CSS Grid Layout汇总
12-13
上一篇《CSS Grid布局教程之什么是网格布局》中简单介绍了什么是CSS Grid Layout以及一些概念和术语,为后续学习和使用CSS Grid Layout做了一些铺垫。但浏览器对CSS Grid Layout到目前为止各浏览器厂端支持程度不...
CSS Grid布局教程之网格单元格布局
12-13
CSS Grid布局对于我等来说就是一个全新的布局,但国外很多同行朋友已对这种布局做了全面的探知。前面花了两篇内容(《CSS Grid布局教程之什么是网格布局》和《CSS Grid布局教程之浏览器开启CSS Grid Layout汇总》)...
5分钟教你学会 CSS Grid 布局
09-27
CSS Grid布局是一种用于网页设计的二维布局系统,它能够让你在网页上创建复杂的网格布局结构。随着主流浏览器如Safari、Chrome、Firefox和Edge的原生支持,CSS Grid已经成为前端开发者必须掌握的技能之一。它被认为...
打造浪漫情人节:使用CSS Grid布局设计主题页面
最新发布
08-11
CSS Grid布局作为当前网页布局的强大工具,可以用来创建一个既美观又响应式的情人节主题页面。本文将详细介绍如何使用CSS Grid来设计这样一个页面。 通过CSS Grid布局,我们可以轻松地创建一个既美观又功能丰富的...
css grid布局
weixin_43760238的博客
11-26 197
auto-fill 关键字 使用场景:单元格的大小是固定的,但是容器的大小不确定,对于在不同宽度屏幕下放置不同数量的固定单元格很有作用,超出就换行 .container { display: grid; grid-template-columns: repeat(auto-fill, 100px); } 实例 ...
CSS grid 布局
学习笔记
03-25 673
CSS grid 布局 display: grid; grid-template-columns: 20% 60% 20%; grid-template-rows: 20% 20% 20% 20% 20%; grid-gap: 10px 10px;
css Grid 布局
A secret makes a woman woman.
05-25 286
css Grid布局:什么是网格布局 css Grid布局: 浏览器开启css Grid Layout
CSS—— grid布局
mantou_riji的博客
05-14 2957
grid 是一个 CSS 简写属性,可以用来设置以下属性: 显式网格属性 grid-template-rows、grid-template-columns 和 grid-template-areas, 隐式网格属性 grid-auto-rows、grid-auto-columns 和 grid-auto-flow, 间距属性 grid-column-gap 和 grid-row-gap。none:表示不明确的网格,所有的行和其大小都将由grid-auto-rows 属性隐式的指定。
CSSgrid布局
一只努力搬砖的打工妹纸
06-30 1530
grid布局
CSSGrid布局
weixin_53278262的博客
01-25 1691
目录 结构划分以及组成 代码实现 规划网格 定位格子区域 隐形网格 效果展示 Grid专为布局而生。Flexbox是沿着两条轴排分布,定义空间的分配。Grid则是把子结点布到网格中,这个网格可以是预设好的几行几,也可能是自动生成的隐式的网格,总之头脑中始终要有一个“网格”的意象。Grid的规则属性很多,其中不乏一些是shorthands。我们需要先充分理解Grid模型,才能得心应手。在布局上,它绝对是一柄利器。兼容性前面说了,目前PC端上支持还是比较成熟的,移动端上不建议用。 结..
Css布局 Grid布局
qq_54855933的博客
08-01 1112
grid-template-areas 的属性值是一个或多个由空格分隔的字符串,每个字符串代表网格布局中的一行。函数 :minmax(最小值,最大值) 函数允许你同时设置(或行)的最小值和最大值。会创建两,第一长度为1fr,第二的宽度至少为 100px,且不超过1fr。Grid布局,即网格布局,通过将容器划分为"行"和""来创建网格,然后将内容放置在网格的单元格中,咱们可以简单理解为二维布局。定义了网格线与网格项之间的间隙(grid-row-gap 和 grid-column-gap 的简写)。
CSS Grid 布局
08-30
要开始使用CSS Grid布局,首先需要为容器元素应用`display: grid`样式。然后,可以使用`grid-template-columns`和`grid-template-rows`属性来定义网格的数和行数,可以是像素,百分比或者是自动适应内容的大小。...
写文章

热门文章

  • SpringBoot整合MongoDB 18604
  • vue3时间转换插件-Moment.js的使用 16181
  • Java解析cron表达式 12749
  • Vue之xlsx的使用 10237
  • Java实现HTML转PDF 10177

分类专栏

  • python 5篇
  • linux 5篇
  • AI 3篇
  • java 50篇
  • uni-app 5篇
  • 前端 43篇
  • vue 38篇
  • springboot 9篇
  • vite 3篇
  • MQ 6篇
  • css 5篇
  • html 2篇
  • js 15篇
  • Jackson 1篇
  • electron 2篇
  • springcloud 1篇
  • mongodb 1篇
  • docker 3篇
  • php 1篇
  • git 2篇
  • mybatis-plus 1篇

最新评论

  • ONLYOFFICE8.0部署集成(vue+java)并配置存储为minio

    阿J~: 我什么时候才能像大佬一样强!!!

  • 基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件

    ハチ༗: 没有,换别的插件了

  • SpringAI学习及搭建AI原生应用

    一杯温水️: nbnb

  • ONLYOFFICE8.0部署集成(vue+java)并配置存储为minio

    落魄实习生: 他是支持s3协议。需要看一下再哪个版本支持的。我目前使用的是8

  • Python—使用LangChain调用千帆大模型

    KevinDaddy: 所有QianfanChatEndpoint,都需要增加参数model=‘xxxxxxxx',设置为开通过付费的模块名称,否则无法运行; 如:chat = QianfanChatEndpoint(model='ERNIE-Bot-4',temperature=0.8)

大家在看

  • Java 编码系列:日期和时间、文件操作 390
  • O型圈设计 54
  • C/C++中的内存管理
  • C++:类和对象OJ题 985
  • Redis从基础到实战总结+Redisson分布式锁小结 2002

最新文章

  • LangChain-Chatchat本地搭建部署
  • 在 Linux 上安装 Miniconda
  • ChatGLM4大模型安装、微调
2024年19篇
2023年30篇
2022年40篇
2021年36篇
2020年7篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

天下网标王怀远seo网站优化icp备案注销影响网站优化吗盐田网站优化seo宝安网站优化排名电话网站关键词优化学习西城网站seo优化网站移动端优化排名方法博客网站优化技巧网站优化公司排名网站优化天晟合益观澜网站优化优化网站需要做什么工作网站是如何优化排名的塘厦网站seo推广优化武汉网站建设优化哪家好汕尾企业网站排名优化河源网站优化维护深圳网站优化靠谱的天津商城网站优化优化网站的四大角度网站seo优化视频教程莲花搜索引擎网站优化光易云网络公司寿光网站优化湛江优化网站报价长葛口碑好网站优化公司白云网站优化怎么样双流网站优化哪家好渭南网站关键词排名优化seo网站引擎优化网站源代码优化香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化