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…

一、个人博客搭建保姆级教程-总篇

前言 首先说明一下&#xff0c;我们这套教程主要部署的是静态网页&#xff0c;即不涉及到JavaWeb、ASP.Net这些框架。直接使用nginx托管静态网页。 主要面向的是不希望花太多时间在搭建个人博客上的小伙伴、以及非程序员的小伙伴。 前置知识 当然了&#xff0c;搭建需要一些…

项目代码规范

Web端代码规范 Vue项目代码规范 一、命名规范 1、项目名 全部采用小驼峰命名式&#xff0c;例&#xff1a;camelCase&#xff08;小驼峰式命名法 —— 首字母小写&#xff09; 2、目录名 参照项目命名规则&#xff0c;有复数结构时&#xff0c;要采用复数命名法。例&#xff…

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 模型。 我们在数据中看到有趣…

Spring---Bean的作用域和生命周期

文章目录 Bean的作用域Bean的六种作用域设置Bean的作用域 Bean的生命周期Bean&#xff08;Spring&#xff09;的执行流程Bean的生命周期 Bean的作用域 我们通过一个例子来认识 Bean 的作用域&#xff1a; 假设现在有一个公共的 Bean 对象提供给用户A和用户B使用&#xff0c;然…

第9课 任务创建、删除和API函数

第9课 任务创建、删除和API函数 任务创建和删除本质是调用FreeRTOS的API函数 API函数描述xTaskCreate()动态方式创建任务xTaskCreateStatic()静态方式创建任务xTaskDelete()删除任务 动态创建任务&#xff1a; 任务的任务控制块以及任务的栈空间所需的内存&#xff0c;均由…

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…

代理模式简单demo(java)

1、背景 mybatis中使用了大量的代理模式&#xff0c;如果了解了代理的使用&#xff0c;可能会对阅读mybatis源码有事半功倍的效果。所以在空闲的时候整理了下java常见的代理和使用demo。 2、关键点介绍 代理模式本质上的目的是为了增强现有代码的功能&#xff0c;其分为静态…

在qt5中使用XShapeCombineRectangles编译报错

linux x11环境中&#xff0c;在qt5中使用XShapeCombineRectangles去实现鼠标穿透 引用了两个头文件&#xff1a; #include <QX11Info> #include <X11/extensions/shape.h>编译的时候会报错&#xff1a; Desktop_Qt_5_12_12_GCC_64bit-Debug/moc_mainwindow.cpp:8…

等保之道:从基础出发,解密网站防护的重要性

随着数字化时代的推进&#xff0c;网站安全问题日益凸显。网站被攻击不仅会导致信息泄漏、服务中断&#xff0c;还可能损害用户信任和企业声誉。为了更好地解决这一问题&#xff0c;我们需从等保的角度审视网站防护&#xff0c;全面提升网络安全水平。 等保背景 等保&#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 商店并使其隐藏。 非常适合批发商店、会员制俱…

vue 根据动态生成的form表单的整体的数据回显,赋值及校验和提交

主要负责处理表单数据的展示、编辑和提交&#xff0c;以及与后端接口的交互。&#xff08;处理选择地址、处理单选框选中、设置表单验证、提交表单、校验文件是否上传完成、处理上传文件等&#xff09; 公共调用方法mixins文件 import HCommonPop from "/components/comm…

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

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