Grid布局详解-看这篇就够了

news2024/12/27 11:16:18

Grid网格布局的概念,和flex布局的区别

含义:它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局
区别:Gid布局与Flex布局有一定的相似性,都可以指定容器内部多个项目的位置。但是,它们也存在重大区别。
flex布局是轴线布局,只能指定"项目"针对轴线的位置,可以看作是一维布局。
Gid布局则是将容器划分成"行"和"列”,产生单元格,然后指定"项目所在"的单元格,可以看作是二维布局。
网格布局案例:不规则布局页面(win窗口)

1、容器和项目

容器:一个案例中最大的盒子,可以理解成父元素
项目:一个案例中的,最大盒子里面的内容,可以理解成子元素
在这里插入图片描述

2、行和列

行和列:容器里面的水平区域称为"行”,垂直区域称为“列”。
在这里插入图片描述

3、网格线

网格线:划分网格的线,称为"网格线”。水平网格线划分出行,垂直网格线划分出列。
在这里插入图片描述

三、网格布局中的属性

**含义:**网格布局中的属性和f1lx中的布局属性类似,分为了两类,一类容器属性;一类是项目属性

1、容器属性

1、触发网格布局
给父元素添加display:grid
display关于网格的取值分为两个,grid(块网格)和inline-grid(行内网格,行内块)
grid=容器从上向下排列
inline-grid
=容器从左向右排列

2、行列划分

规定属性:grid-template-row:
固定属性:grid-template-column:
后面的取值数量代表的是多少行,多少列
1)绝对大小(根据列数或者行数确定值的个数)例200px 200px 200px

grid-template-columns:200px 200px 200px
grid-template-rows:200px 200px 200px

在这里插入图片描述
2)百分比(根据列数或者行数确定值的个数)例:33.33%33.33%33.33%

grid-template-columns:33.33% 33.33% 33.33%
grid-template-rows:33.33% 33.33% 33.33%

在这里插入图片描述
3)功能函数:repeat()

**repeat(参数1,参数)**
参数1:重复的次数
参数2:重复的数值或者重复的模式
eg:
grid-template-columns:repeat (3,33.33%);
等同
grid-temp1ate-co1umn5:33.33%33.33%33.33%

4)auto-fill关键字(自动填充)配合功能函数使用

grid-template-columns:repeat (auto-fil1,33.33%);
当项目宽高固定,容器不固定的情况下,自动填充网格列数

5)fr关键字(列宽片段)

为了方便表示比例关系,网格布局提供了fr关键字(fraction的缩写,意为"片段")。如果两列的宽度分别为1fr和2fr,就表示后者是前者的两倍。
grid-template-columns:1fr 3fr 1fr;
grid-template-rows:repeat(3,100px);

6)minmax0功能函数

grid-template-columns:1fr 1fr minmax(100px,1fr)
minmax(100px,1fr)表示列宽不小于100px,不大于1fr

7)auto关键字自动填充

grid-template-columns:30px auto 20px;
grid-template-rows repeat (3,100px);

3、列间距(重点:复合属性)

grid-row-gap:20px/会行间距*/
grid-co1umn-gap:20px/☆列间距*/
grid-gap:30px 30p×/☆复合式写法*/
gap:30px 30p×/☆复合式写法*/(行间距,列间距)
/*注:新版本已经省略grd-前缀
row-gap column-gap  gap*/

在这里插入图片描述

4、指定区域

display:grid;
grid-template-columns:100px 100px 100px;
grid-template-rows:100px 100px100px;
grid-template-areas:'a b c'
					'd e f'
					'g h i';
将整个网格容器分为9个区域,每个区域对应一个单元格
通过grid-area指定项目名称。
display:grid;
grid-template-columns:repeat (3,100px);
grid-template-rows:repeat(3,100px);
grid-template-areas:'a a a'
					'. . b'
					'. c c';

在这里插入图片描述

合并的时候使用grid-area:网格名字;进行合

例如上图案例:.box1{grid-area:a}
.box2{grid-area:b}
.box3{grid-area:c}

5、项目排列顺序

grid-auto-flow:column I row;
row dense column dense.
这两个值主要用于,某些项目指定位置以后,剩下的项目怎么自动放置。

6、单元格内容对其(重点:复合属性)

justify-items:start end center stretch;
align-items:start end  center  stretch;
place-items:<align-items><justify-items>
/*复合式写法*
/会
start:对齐单元格的起始边缘。
end:对齐单元格的结束边缘。
center:单元格内部居中。
stretch:拉伸,占满单元格的整个宽度(认值)。

7、单元格项目对其(重点:复合属性)

justify-content:start end  center stretch  space-around  space-between  space-evenly;
align-content:start  end center stretch space-around  space-between space-evenly;
place-content:<align-content:><justify-content:>/复合式写法*/
/☆
start-对齐容器的起始边框。
end-对齐容器的结束边框。
center-容器内部居中。
stretch~项目大小没有指定拉伸占据整个网格容器。
space-around-每个项目两侧的间隔相等。所以,项目之间的间隔比项目与容器边框的间隔大一倍。
space-between-项目与项目的间隔相等,项目与容器边框之间没有间隔。
pace-evenly~项目与项目的间隔相等,项目与容器边框之间也是同样长度的间隔。

2、项目属性

1、网格线合并(单一属性)


grid-column-start
grid-column-end
grid-row-start
grid-row-end

grid-column-start.属性:左边框所在的垂直网格线
grid-column-end属性:右边框所在的垂直网格线
grid-row-start属性:上边框所在的水平网格线
grid-row-end属性:下边框所在的水平网格线
grid-column-start:1;
grid-column-end:3;
grid-row-start:2;
grid-row-end:4;

2.grid-area:调用分区

配合grid-template-areas属性使用

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

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

相关文章

Autosar存储入门系列04_NvM的CRC比较机制及同/异步写

本文框架 0.前言1. NvM的CRC校验1.1 CRC 比较机制 2. NvM的同步写及异步写2.1 NvM的同步写2.1 NvM的异步写 0.前言 本系列是Autosar存储入门系列&#xff0c;希望能从学习者的角度把存储相关的知识点梳理一遍&#xff0c;这个过程中如果大家觉得有讲得不对或者不够清晰的地方&…

【09期】HashMap常见面试题

简介 HashMap最早出现在JDK1.2中&#xff0c;底层基于散列算法实现。HashMap 允许 null 键和 null 值&#xff0c;是非线程安全类&#xff0c;在多线程环境下可能会存在问题。 1.8版本的HashMap数据结构&#xff1a; 为什么有的是链表有的是红黑树&#xff1f; 默认链表长度大…

Postman脚本批量转接口自动化用例

1、前言 作者之前已经开发了一个生成接口用例的工具 - API接口用例生成器&#xff0c;即将现有的 Postman 脚本转化为接口用例。本篇介绍另一款最近刚开发并项目落地的工具&#xff0c;将 Postman 的 json 脚本文件可以批量转换生成接口用例 - APICase-PostmanForJSON。 2、简…

jmeter接口测试及详细步骤以及项目实战教程

在接口测试项目实战中&#xff0c;JMeter是一款非常强大和流行的自动化测试工具&#xff0c;它可以测试各种类型的应用程序&#xff0c;并通过采样和报告来识别性能瓶颈和API的问题。本文将为你提供一个基于实际项目的JMeter接口测试项目实战教程&#xff0c;指导你如何使用JMe…

驱动day10

练习 基于platform实现 设备树 myplatform_homework{compatible "hqyj,myplatform_homework"; //用于获取节点reg <0x12345678 14>;interrupt-parent <&gpiof>; //引用父节点interrupts <9 0>; //这个节点引入的中断管脚led1-gpi…

Git 简单介绍

Git 是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。 一、Git 安装 windows安装&#xff1a;进入网站 https://git-scm.com/ 安装&#xff0c;ubuntu配置&#xff1a;apt install git。当前于 Win 下已安装 Git 版本 2.40.1。 二、配置 设…

ModStartBlog v8.1.0 博客密码访问,内容编辑升级

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场&#xff0c;后台一键快速安装 …

LLMs之Code:SQLCoder的简介、安装、使用方法之详细攻略

LLMs之Code&#xff1a;SQLCoder的简介、安装、使用方法之详细攻略 目录 SQLCoder的简介 1、结果 2、按问题类别的结果 SQLCoder的安装 1、硬件要求 2、下载模型权重 3、使用SQLCoder 4、Colab中运行SQLCoder 第一步&#xff0c;配置环境 第二步&#xff0c;测试 第…

Jetson Xavier NX安装torch环境

设备简介 Jetson Xavier NX是一款具有强大计算能力的AI处理器&#xff0c;它采用了NVIDIA的Turing架构和Volta GPU架构&#xff0c;可以实现高性能的深度学习和推理任务。具体性能如下&#xff1a; CPU&#xff1a;6核心ARM Cortex-A57处理器&#xff0c;最高主频1.5GHz。 GP…

一文讲透 JavaScript 应用的演进历程

在不断发展的软件开发领域中&#xff0c;很少有编程语言像JavaScript一样产生深远的影响。它起初只是一种简单的脚本语言&#xff0c;但如今已成为现代Web的驱动力量&#xff0c;改变了应用构建和体验的方式。本文将带你沿着时间线&#xff0c;穿越JavaScript的演进历程&#x…

【网络BSP开发经验】Linux gmac驱动调试(FH8626)

文章目录 Linux网络设备驱动简介Linux网卡驱动网络协议接口层网络设备接口层设备驱动功能层网络设备与媒介层linux驱动数据结构linux驱动注册过程网络设备驱动的注册与注销linux驱动数据包收发流程 Linux PHY驱动MDIO接口PHY简介PHY关联过程PHY状态机对端MAC情况&#xff08;接…

便携式水质检测仪都测哪些水中指标

水质检测仪分为实验室&#xff08;台式&#xff09;和户外使用的便携式多参数水质检测仪。 便携式的有哪些特点&#xff1f; 相对于实验室的水质分析设备&#xff0c;便携式水质多参数分析仪体积小巧&#xff0c;结构简单&#xff0c;户外使用更加便捷&#xff0c;功能更丰富。…

OLED透明屏暗斑问题解析:原因、解决方案与行业趋势

OLED透明屏作为一项创新技术&#xff0c;广泛应用于广告、零售和汽车等领域&#xff0c;其高透明度和出色的显示效果备受青睐。 然而&#xff0c;一些用户反映在使用过程中出现了暗斑问题&#xff0c;影响了显示效果。 那么&#xff0c;在这篇文章中&#xff0c;尼伽将和大家…

RT_Thread内核机制学习(六)互斥量

互斥量 互斥量是特殊的信号量&#xff0c;资源个数只能是0、1&#xff0c;实现了优先级继承。 互斥量优点&#xff1a;谁拥有谁释放&#xff0c;优先级继承。 信号量的缺点&#xff1a;谁都可以释放信号量、优先级反转。 HP被MP抢占&#xff0c;优先级反转。 互斥量实现了优…

MySQL备份和还原

前言 mysql日志默认保存在/usr/local/mysql/data 常见的日志&#xff1a; 1、错误日志 2、一般查询日志 3、二进制日志 4、中继日志 5、重做日志 6、回滚日志 7、慢查询日志 配置文件位置 vim /etc/my.cnf 错误日志&#xff0c;用来记录当MySQL启动、停止或运行时发生的错误信…

Java 数据结构使用学习

Set和List的区别 Set 接口实例存储的是无序的&#xff0c;不重复的数据。List 接口实例存储的是有序的&#xff0c;可以重复的元素。 Set 检索效率低下&#xff0c;删除和插入效率高&#xff0c;插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>。 List 和数…

Linux-crontab使用问题解决

添加定时进程 终端输入&#xff1a; crontab -e选择文本编辑方式&#xff0c;写入要运行的脚本&#xff0c;以及时间要求。 注意&#xff0c;如果有多个运行指令分两种情况&#xff1a; 1.多个运行指令之间没有耦合关系&#xff0c;分别独立&#xff0c;则可以直接分为两个…

C++学习记录——이십구 异常

文章目录 1、异常概念2、实际用法3、C标准库的异常体系4、重新抛出异常5、优缺点 1、异常概念 C语言处理错误有assert&#xff0c;返回错误码来处理错误的方式&#xff0c;不过release模式下assert无效&#xff0c;错误码需要程序员自己去查看是什么错误。 C认为应当能给到程…

LLMs之Code:Code Llama的简介、安装、使用方法之详细攻略

LLMs之Code&#xff1a;Code Llama的简介、安装、使用方法之详细攻略 导读&#xff1a;2023年08月25日(北京时间)&#xff0c;Meta发布了Code Llama&#xff0c;一个可以使用文本提示生成代码的大型语言模型(LLM)。Code Llama是最先进的公开可用的LLM代码任务&#xff0c;并有潜…

会玩这10个Linux命令,一定是个有趣的IT男!

Linux当中有很多比较有趣的命令&#xff0c;可以动手看看&#xff0c;很简单的。 1、rev命令 一行接一行地颠倒所输入的字符串。 运行&#xff1a; $rev 如输入&#xff1a;shiyanlou shiyanlou 2、asciiview命令 1)先安装aview $sudo apt-get install aview 2)再安装…