css中的 Grid 布局

flex布局和grid布局区别

  • flex布局是 一维布局
  • grid布局是二维布局

flex布局示例
在这里插入图片描述
grid布局示例
在这里插入图片描述

grid 布局初体验

体验地址
在这里插入图片描述

  <div class="wrapper"><div class="one item">One</div><div class="two item">Two</div><div class="three item">Three</div><div class="four item">Four</div><div class="five item">Five</div><div class="six item">Six</div></div>

1、容器和项目
wrapper上声明 display:grid 来创建一个网格容器,.wrapper 就是容器,每一个网格容器的子元素就是 项目
2、网格轨道
grid-template-columnsgrid-template-rows 属性来定义网格中的行和列
3、网格单元
就是单元格
4、网格线

当我们定义网格时,我们定义的是网格轨道,而不是网格线。Grid 会为我们创建编号的网格线来让我们来定位每一个网格元素。m 列有 m + 1 根垂直的网格线,n 行有 n + 1 跟水平网格线。比如上图示例中就有 4 根垂直网格线。一般而言,是从左到右,从上到下,1,2,3 进行编号排序。当然也可以从右到左,从下到上,按照 -1,-2,-3…顺序进行编号排序

在这里插入图片描述

容器属性

1、display 属性

在这里插入图片描述

<body><span>display:grid 头部</span><div class="wrapper"><div class="one item">One</div><div class="two item">Two</div><div class="three item">Three</div><div class="four item">Four</div><div class="five item">Five</div><div class="six item">Six</div></div><span>display:grid 尾部</span></br></br></br><span>display:inline 头部</span><div class="wrapper" style="display: inline-grid;"><div class="one item">One</div><div class="two item">Two</div><div class="three item">Three</div><div class="four item">Four</div><div class="five item">Five</div><div class="six item">Six</div></div><span>display:grid 尾部</span></body>

2、grid-template-columns 属性和 grid-template-rows 属性

  • 固定 列、行 的高度、宽度
  • repeat()函数:该函数接受两个参数,第一个参数是重复的次数,第二个参数是所要重复的值
  • auto-fill 关键字
  • fr 关键字
  • mainmax函数
  • auto 关键字

固定列、行的高度、宽度
在这里插入图片描述

    .wrapper {display: grid;grid-gap: 20px;/* 定义行 高度,第一行100px ,第二行200px */grid-template-rows: 100px 200px;/* 定义列 宽度,第一列100px,第二行150px,第三行200px */grid-template-columns: 100px 150px 200px;}

repeat函数
在这里插入图片描述

    .wrapper {display: grid;grid-gap: 20px;/* repeat 函数:该函数接受两个参数,第一个参数是重复的次数,第二个参数是所要重复的值 */grid-template-rows: repeat(2, 100px);grid-template-columns: 100px 150px 200px;}

auto-fill 关键字

每一行的高度都是50px,但是每一列的宽度都是200px,但是每一行能显示几个是自适应的, 根据可视区域的大小决定的

在这里插入图片描述

    .wrapper {display: grid;grid-gap: 20px;grid-auto-rows: 50px;grid-template-columns: repeat(auto-fill, 200px);}

fr 关键字

fr 类似于flex 布局的 flex:1 ,把空间分成多少份
第一列宽度是 200px ,第二列和第三行 的宽度相加,是 剩余宽度, 第二列占剩余宽度的 1/3,第三列占剩余宽度 2/3

    .wrapper {display: grid;grid-gap: 20px;grid-auto-rows: 50px;grid-template-columns: 200px 1fr 2fr;}

maxmin函数

第三列最小是300px ,最大 不能 大于 盒子宽度的 1/2

在这里插入图片描述

    .wrapper {display: grid;grid-gap: 20px;grid-auto-rows: 50px;grid-template-columns: 1fr 1fr minmax(300px, 2fr);}

auto 关键字

可以做到自适应等场景

    .wrapper {display: grid;grid-gap: 20px;grid-auto-rows: 50px;grid-template-columns: 300px auto}

3、grid-row-gap属性、grid-column-gap属性以及 grid-gap属性

  • grid-gap :写一个参数则是,行间距、列间距都是这个值,写两个则 第一个是行间距,第二个是列间距
  • 行间距:grid-row-gap 、row-gap(这个属性支持度没有前面的好)
  • 列间距:grid-column-gap、column-gap(这个属性支持度没有前面的好)
    .wrapper {display: grid;grid-gap: 20px;/* grid-row-gap: 20px;grid-column-gap: 40px; *//* row-gap: 30px;column-gap: 60px; */grid-template-rows: 100px 200px;grid-template-columns: 100px 150px 200px;}

4、grid-template-areas 属性

用于定义区域,一个区域由一个或者多个单元格组成

  • . 表示 空的单元格,是占位置的
  • 一对 双引号, 表示一行

在这里插入图片描述

  .wrapper {display: grid;grid-gap: 20px;grid-template-rows: 100px 200px;grid-template-columns: 100px 150px 200px;grid-template-areas:". . one"". two ."". . three""four five six";}.one {background: #19CAAD;grid-area: one;}.two {background: #8CC7B5;grid-area: two;}.three {background: #D1BA74;grid-area: three;}.four {background: #BEE7E9;grid-area: four;}.five {background: #E6CEAC;grid-area: five;}.six {background: #ECAD9E;grid-area: six;}.item {text-align: center;font-size: 200%;color: #fff;}

5、grid-auto-flow 属性

grid-auto-flow 属性控制着自动布局算法怎样运作,精确指定在网格中被自动布局的元素怎样排列。

  • 单个关键字:row、column,或 dense 中的一个。
  • 两个关键字:row dense 或 column dense。

在这里插入图片描述

    .wrapper,.wrapper-1,.wrapper-2 {margin: 50px;}.wrapper {display: grid;grid-template-rows: 50px;grid-template-columns: 100px 200px 100px;grid-auto-flow: row;/* grid-gap: 5px; */}.wrapper-1 {display: grid;grid-auto-columns: 100px;grid-auto-flow: column;grid-gap: 5px;grid-template-rows: 50px 50px;}.wrapper-2 {display: grid;grid-template-columns: 100px 200px 100px;grid-auto-flow: row dense;grid-gap: 5px;grid-auto-rows: 50px;}.one {background: #19CAAD;}.two {background: #8CC7B5;}.three {background: #D1BA74;}.four {background: #BEE7E9;}.five {background: #E6CEAC;}.six {/* grid-column-start: span 2; *//* grid-column: auto; */grid-column: span 2; /* 这个意思是占据两个单元格*/background: #ECAD9E;}.seven {background: #BEEDC7;}.eight {background: #F4606C;}.nine {background: #A0EEE1;}.item {text-align: center;font-size: 200%;color: #fff;}
  <h1>先行后列</h1><div class="wrapper"><div class="one item">One</div><div class="two item">Two</div><div class="three item">Three</div><div class="four item">Four</div><div class="five item">Five</div><div class="six item">Six</div><div class="seven item">Seven</div><div class="eight item">eight</div><div class="nine item">Nine</div></div><h1>先列后行</h1><div class="wrapper-1"><div class="one item">One</div><div class="two item">Two</div><div class="three item">Three</div><div class="four item">Four</div><div class="five item">Five</div><div class="six item">Six</div><div class="seven item">Seven</div><div class="eight item">eight</div><div class="nine item">Nine</div></div><h1>先行后列:dense</h1><div class="wrapper-2"><div class="one item">One</div><div class="two item">Two</div><div class="three item">Three</div><div class="four item">Four</div><div class="five item">Five</div><div class="six item">Six</div><div class="seven item">Seven</div><div class="eight item">eight</div><div class="nine item">Nine</div></div>

6、justify-items 属性、align-items 属性

  • justify-items 属性设置单元格内容的水平位置(左中右)
  • align-items 属性设置单元格内容的垂直位置(上中下)
.container {justify-items: start | end | center | stretch;align-items: start | end | center | stretch;
}

justify-items: center;
在这里插入图片描述
justify-items:start;
在这里插入图片描述
justify-items:end;
在这里插入图片描述
justify-items:stretch;

拉伸,铺满

在这里插入图片描述

7、justify-content 属性、align-content 属性以及 place-content 属性

  • justify-content 属性是整个内容区域在容器里面的水平位置(左中右)
  • align-content 属性是整个内容区域在容器里面的垂直位置(上中下)。它们都有如下的属性值。
  justify-content: start | end | center | stretch | space-around | space-between | space-evenly;align-content: start | end | center | stretch | space-around | space-between | space-evenly; 

justify-content

  • start:将网格对齐到 网格容器(grid container) 的左侧起始边缘(左侧对齐)
  • end:将网格对齐到 网格容器 的右侧结束边缘(右侧对齐)
  • center:将网格对齐到 网格容器 的水平中间位置(水平居中对齐)
  • stretch:调整 网格项(grid items) 的宽度,允许该网格填充满整个 网格容器 的宽度
  • space-around:在每个网格项之间放置一个均匀的空间,左右两端放置一半的空间
  • space-between:在每个网格项之间放置一个均匀的空间,左右两端没有空间
  • space-evenly:项目与项目的间隔相等,项目与容器边框之间也是同样长度的间隔

在这里插入图片描述

8、grid-auto-columns 属性和 grid-auto-rows 属性

显式网格包含了你在 grid-template-columns 和 grid-template-rows 属性中定义的行和列。如果你在网格定义之外又放了一些东西,或者因为内容的数量而需要的更多网格轨道的时候,网格将会在隐式网格中创建行和列

如果有隐式网格它的行高和列宽可以根据 grid-auto-columns 属性和 grid-auto-rows属性设置

    .wrapper {display: grid;grid-template-columns: 150px 100px;grid-gap: 20px;grid-template-rows: 100px 100px;grid-auto-rows: 300px;/* grid-auto-columns: 200px; */}

在这里插入图片描述

项目属性

1、grid-column-start 属性、grid-column-end 属性、grid-row-start 属性以及grid-row-end 属性

grid-column CSS 属性是 grid-column-start (en-US) 和 grid-column-end (en-US) 的简写属性
grid-row 属性是一种 grid-row-start (en-US) 和 grid-row-end (en-US) 的缩写(shorthand)形式

具体可参考MDN MDN grid-row

  • grid-column-start 属性:左边框所在的垂直网格线
  • grid-column-end 属性:右边框所在的垂直网格线
  • grid-row-start 属性:上边框所在的水平网格线
  • grid-row-end 属性:下边框所在的水平网格线

在这里插入图片描述

    .wrapper {display: grid;grid-template-columns: repeat(3, 1fr);grid-gap: 20px;grid-auto-rows: minmax(100px, auto);}.one {/* grid-column-start: 1;grid-column-end: 2; */background: #19CAAD;}.two {grid-column-start: 2;grid-column-end: 4;grid-row-start: 1;grid-row-end: 2;/*   如果有重叠,就使用 z-index */z-index: 1;background: #8CC7B5;}.three {/* grid-column-start: 3;grid-column-end: 4; *//* grid-row-start: 1;grid-row-end: 4; */grid-column: 3 / 4;grid-row: 1 / 4;background: #D1BA74;z-index: 2;}.four {grid-column-start: 1;grid-column-end: 2;grid-row-start: 2;grid-row-end: 5;background: #BEE7E9;}.five {grid-column-start: 2;grid-column-end: 2;grid-row-start: 2;grid-row-end: 5;background: #E6CEAC;}.six {grid-column: 3;grid-row: 4;background: #ECAD9E;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/190770.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Asp.net core WebApi 配置自定义swaggerUI和中文注释,Jwt Bearer配置

1.创建asp.net core webApi项目 默认会引入swagger的Nuget包 <PackageReference Include"Swashbuckle.AspNetCore" Version"6.2.3" />2.配置基本信息和中文注释&#xff08;默认是没有中文注释的&#xff09; 2.1创建一个新的controller using Micr…

开源堡垒机Jumpserver

文章目录 开源堡垒机JumpserverJumpserver介绍安装环境部署安装jumpserver访问jumpserver的web界面 开源堡垒机Jumpserver Jumpserver介绍 Jumpserver 是全球首款完全开源的堡垒机&#xff0c;使用 GNU GPL v2.0 开源协议&#xff0c;是符合 4A 的运维安全审计系统。 Jumpse…

J-LINK J-FLASH 下载STM32单片机程序使用教程

J-LINK J-FLASH 下载STM32单片机程序使用教程 Chapter1 J-LINK J-FLASH 下载STM32单片机程序使用教程1.安装提供的 JLINK驱动程序2. 点击打开 J-Flash V7.223.点击 create a new project.&#xff08;使用后可以在软件菜单File保存这个烧写工程&#xff0c;后续直接打开使用即可…

SHAP(四):NHANES I 生存模型

SHAP&#xff08;四&#xff09;&#xff1a;NHANES I 生存模型 这是一个 Cox 比例风险模型&#xff0c;基于来自 NHANES I 的数据以及来自 NHANES I 流行病学随访研究。 它旨在说明 SHAP 值如何能够以传统上仅由线性模型提供的清晰度解释 XGBoost 模型。 我们在数据中看到有趣…

JOSEF约瑟时间继电器ARTD-DC110V-2H2D 0.25-2.5s导轨安装

ARTD系列断电延时继电器&#xff1a; ARTD-220VDC-1H1D断电延时继电器&#xff1b;ARTD-220VDC-2H断电延时继电器&#xff1b; ARTD-220VDC-2H2D断电延时继电器&#xff1b;ARTD-220VDC-4H断电延时继电器&#xff1b; ARTD-110VDC-1H1D断电延时继电器&#xff1b;ARTD-110VD…

SSM框架(四):SSM整合 案例 + 异常处理器 +拦截器

文章目录 一、整合流程图1.1 Spring整合Mybatis1.2 Spring整合SpringMVC 二、表现层数据封装2.1 问题引出2.2 统一返回结果数据格式 代码设计 三、异常处理器3.1 概述3.2 异常处理方案 四、前端五、拦截器5.1 概念5.2 入门案例5.3 拦截器参数5.4 拦截器链 一、整合流程图 1.1 S…

本科毕业生个人简历23篇

刚毕业的本科生如何制作一份令招聘方印象深刻的简历&#xff1f;可以参考以下这23篇精选的本科毕业生应聘简历案例&#xff01;无论您的专业是什么&#xff0c;都能从中汲取灵感&#xff0c;提升简历质量&#xff0c;轻松斩获心仪职位&#xff01;小伙伴们快来看看吧&#xff0…

C++作业4

代码整理&#xff0c; 将学过的三种运算符重载&#xff0c;每个至少实现一个运算符的重载 代码&#xff1a; #include <iostream>using namespace std;class Stu {friend const Stu operator*(const Stu &L,const Stu &R);friend bool operator<(const Stu …

抓取检测(Grasp Dection)

抓取检测 抓取检测被定义为能够识别任何给定图像中物体的抓取点或抓取姿势。抓取策略应确保对新物体的稳定性、任务兼容性和适应性&#xff0c;抓取质量可通过物体上接触点的位置和手的配置来测量。为了掌握一个新的对象&#xff0c;完成以下任务&#xff0c;有分析方法和经验…

智慧工地一体化解决方案(里程碑管理)源码

智慧工地为管理人员提供及时、高效、优质的远程管理服务&#xff0c;提升安全管理水平&#xff0c;确保施工安全提高施工质量。实现对人、机、料、法、环的全方位实时监控&#xff0c;变被动“监督”为主动“监控”。 一、建设背景 施工现场有数量多、分布广&#xff0c;总部统…

Woocommerce Private Store私人商店秘密商城插件,适合批发商店,会员制俱乐部

点击访问原文Woocommerce Private Store私人商店秘密商城插件&#xff0c;适合批发商店&#xff0c;会员制俱乐部 - 易服客工作室 WooCommerce Private Store插件是使 WooCommerce 私有的简单方法。密码保护您的整个 WooCommerce 商店并使其隐藏。 非常适合批发商店、会员制俱…

面试就是这么简单,offer拿到手软(二)—— 常见65道非技术面试问题

面试系列&#xff1a; 面试就是这么简单&#xff0c;offer拿到手软&#xff08;一&#xff09;—— 常见非技术问题回答思路 面试就是这么简单&#xff0c;offer拿到手软&#xff08;二&#xff09;—— 常见65道非技术面试问题 文章目录 一、前言二、常见65道非技术面试问题…

九、FreeRTOS之FreeRTOS列表和列表项

本节需要掌握以下内容&#xff1a; 1&#xff0c;列表和列表项的简介&#xff08;熟悉&#xff09; 2&#xff0c;列表相关API函数介绍&#xff08;掌握&#xff09; 3&#xff0c;列表项的插入和删除实验&#xff08;掌握&#xff09; 4&#xff0c;课堂总结&#xff08;掌…

L1-012:计算指数

⭐题目描述⭐ 真的没骗你&#xff0c;这道才是简单题 —— 对任意给定的不超过 10 的正整数 n&#xff0c;要求你输出 2n。不难吧&#xff1f; 输入格式&#xff1a; 输入在一行中给出一个不超过 10 的正整数 n。 输出格式&#xff1a; 在一行中按照格式 2^n 计算结果 输出 2n…

Nacos多数据源插件

Nacos从2.2.0版本开始,可通过SPI机制注入多数据源实现插件,并在引入对应数据源实现后,便可在Nacos启动时通过读取application.properties配置文件中spring.datasource.platform配置项选择加载对应多数据源插件.本文档详细介绍一个多数据源插件如何实现以及如何使其生效。 注意:…

c++ day 4

代码整理&#xff0c; 将学过的三种运算符重载&#xff0c;每个至少实现一个运算符的重载:分别是-&#xff0c;-&#xff0c;<。 #include <iostream>using namespace std; class Stu {friend const Stu operator-(const Stu &L,const Stu &R);friend bool o…

当XTS服务遇到切流...

事件回顾 介绍问题前&#xff0c;先介绍两个概念。灰度发布和切流。 灰度发布 灰度发布也叫金丝雀发布。起源是矿井工人发现&#xff0c;金丝雀对瓦斯气体很敏感&#xff0c;矿工会在下井之前&#xff0c;先放一只金丝雀到井中&#xff0c;如果金丝雀不叫了&#xff0c;就代表…

如何获取唐诗三百首中的名句列表接口

唐诗三百首&#xff0c;是中国文学中最为经典的诗歌选集之一&#xff0c;其中涵盖了大量美丽、深刻的诗句&#xff0c;被广泛传诵。有不少文化爱好者希望能够获取这些名句列表&#xff0c;以便深入理解唐诗的内涵和精华。那么&#xff0c;如何获取唐诗三百首中的名句列表呢&…

uniapp运行到安卓基座app/img标签不显示

img是html中的标签&#xff0c;他也是一个单标签 image属于服务器控件&#xff0c;是个双标签 问题&#xff1a;uniapp运行到app安卓基座后图片无法显示 原因&#xff1a;自己使用了img标签&#xff0c;而且输入路径无提示&#xff0c;img标签导致图片不显示 解决&#xff…

深入探索网络协议:揭开互联网运作的奥秘(建议收藏)

随着如今数字化时代的到来&#xff0c;互联网已经成为我们日常生活中不可或缺的一部分。然而&#xff0c;我们是否曾好奇过互联网是如何运作的&#xff1f;它是如何将我们与世界连接起来的&#xff1f;答案就在网络协议中&#xff0c;这是互联网背后的语言。 网络协议的作用和功…