Grid网格布局的基本使用

文章目录

    • 什么是网格布局
    • 属性
    • display 属性
    • grid-row-gap 属性, grid-column-gap 属性, grid-gap 属性
    • grid-template-areas 属性
    • grid-auto-flow 属性
    • justify-items 属性 , align-items 属性, place-items 属性
    • justify-content 属性 , align-ntent 属性, place-content 属性
    • grid-column-start 属性 、grid-column-end 属性 、grid-row-start属性以及grid-row-end 属性
    • grid-area 属性
    • justify-self 属性 、align-self 属性以及 place-self 属性
  • 应用场景
    • 有需要的请私信博主,还请麻烦给个关注,博主不定期更新,或许能够有所帮助!!请关注公众号

什么是网格布局

Grid 布局即网格布局, 是一个二维的布局方式, 由纵横相交的两组网格线形成的框架性布局结构 , 能 够同时处理行与列

设置 display:grid/inline-grid 的元素就是网格布局容器, 这样就能出发浏览器渲染引擎的网格
布局算法

<div class="container"><div class="item item-1"><p class="sub-item"></p >                       </div>	<div class="item item-2"></div><div class="item item-3"></div>	
</div>		

.container 元素就是网格布局容器 .item 元素就是网格的项目 , 由于网格元素只能是容器的顶层子元素 ,所以 p 元素并不是网格元素
在这里插入图片描述

属性

Grid 布局属性可以分为两大类 :
容器属性
项目属性

display 属性

• dsplay: grid 则该容器是 一个块级元素
• display: inline-grid 则容器元素为行内元素
grid-template-columns 属性设置列宽, grid-template-rows 属性设置行高

1   .wrapper {
2     display: grid;
3     /*  声明了列 ,宽度分别为   200px 200px 200px */
4     grid-template-columns: 200px 200px 200px;
5     grid-gap: 5px;
6     /*  声明了两行 ,行高分别为   50px 50px  */
7     grid-template-rows: 50px 50px;
8   }

以上表示固定列宽为 200px 200px
通过使用 repeat() 函数 可以简写重复的值
• 第一个参数是重复的次数
• 第二个参数是重复的值
简写代码

	 复制代码
1		
2	wrapper {
3	display: grid;grid-template-columns: repeat(3,200px)4	grid-gap: 5px;
5	grid-template-rows:repeat(2,50px);
6	}

auto-fill : 示自动填充 , 让 — 行 (或者-列) 中尽可能的容纳更多的单元格

grid-template-columns: repeat(auto-fill, 200px)表示列宽是 2 px 但列的数量,

fr: 片段 , 为了方便表示比例关系

grid-template-columns: 200px 1fr 2fr 表示第-个列宽设置为 2。px
后面剩余的宽度分为两部分 , 宽度分别为剩余宽度的 1/3 和 2/3

minmax: 产生一个长度范围 , 表示长度就在这个范围之中都可以应用到网格项目中 。第一个参数就
是最小值 , 第二个参数就是最大值
auto : 由浏览器自己决定长度

grid-template-columns: 100px auto 100px 表示第一第三列为 100px, 中间由浏览器决定 长度

grid-row-gap 属性, grid-column-gap 属性, grid-gap 属性

grid-row-gap 属性、grid-column-gap属性分别设置行间距和列间距,grid-gap属性是两者的简写
两者的简写形式

  • grid-row-gap: 10px 表示行间距是 10px
  • grid-column-gap: 10px,表示列间距是 10px
  • grid-gap: 10px 20px 等同上述两个属性

grid-template-areas 属性

  .container {display: grid;grid-template-columns: 100px 100px 100px;grid-template-rows: 100px 100px 100px;grid-template-areas: 'a b c''d e f''g h i';}

grid-auto-flow 属性

在这里插入图片描述

justify-items 属性 , align-items 属性, place-items 属性

justify-items 属性设置单元格内容的水平位置 (左中右) , align-items 属性设置单元格的
垂直位置 (上中下)

在这里插入图片描述

属性对应如下:
• start: 对齐单元格的起始边缘
• end: 对齐单元格的结束边缘
center: 单元格内部居中
· stretch: 拉伸 , 占满单元格的整个宽度 (默认值)
place-items 属性是 align-items 属性和 justify-items 属性的合并简写形式

justify-content 属性 , align-ntent 属性, place-content 属性

 .container {
2     justify-content: start | end | center | stretch | space-around | space-between | space-evenly;
3     align-content: start | end | center | stretch | space-around | space-between | space-evenly;
4   }

start - 对齐容器的起始边框
end - 对齐容器的结束边框
center - 容器内部居中
space-around - 每个项目两侧的间隔相等 。所以 , 项目之间的间隔比项目与容器边框的间隔大一倍
space-between - 项目与项目的间隔相等 , 项目与容器边框之间没有间隔
space-evenly - 项目与项目的间隔相等 , 项目与容器边框之间也是同样长度的间隔
stretch - 项目大小没有指定时 , 拉伸占据整个网格容器
在这里插入图片描述

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

指定网格项目所在的四个边框 , 分别定位在哪根网格线 , 从而指定项目的位置

  • grid-column-start 属性: 左边框所在的垂直网格线
  • grid-column-end 属性:右边框所在的垂直网格线
  • grid-row-start 属性: 上边框所在的水平网格线
  • grid-row-end 属性:下边框所在的水平网格线
1  <style>		
2	#container{
3	display: grid;
4	grid-template-columns: 100px 100px 100px;
5	grid-template-rows: 100px 100px 100px;
6	}
7	.item-1 {
8	grid-column-start: 2;
9	grid-column-end: 4;
10	}
11	</style>
12	
13	<div id="container">
14	<div class="item item-1">1</div>
15	<div class="item item-2">2</div>                   
16	<div class="item item-3">3</div>
17	</div>

在这里插入图片描述

grid-area 属性

grid-area  属性指定项目放在哪一个区域

1 	.item-1 {		
grid-area: e;	
}	

justify-self 属性 、align-self 属性以及 place-self 属性

justify-self 属性设置单元格内容的水平位置 (左中右) ,跟 justify-items 属性的用法完全
-致 , 但只作用于单个项目 。
align-self 属性设置单元格内容的垂直位置 (上中下) , 跟 align-items 属性的用法完全 — 致 也是只作用于单个项目

1  .item {                                                
2     justify-self: start | end | center | stretch;
3     align-self: start | end | center | stretch;
4   }

这两个属性都可以取下面四个值。

  • tart 对齐单元格的起始边缘
  • center: 单元格内部居中 。
  • stretch: 拉伸 , 占满单元格的整个宽度 (默认值)

应用场景

Grid 是一个强大的布局 ,如 -些常见的 CSS 布局, 如居中, 两列布局, 三列布局 等等是很容易实现的 ,在以前的文章中, 也有使用 Grid 布局完成对应的功能

有需要的请私信博主,还请麻烦给个关注,博主不定期更新,或许能够有所帮助!!请关注公众号

在这里插入图片描述

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

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

相关文章

Java高频面试之集合篇

Java 中常用的容器有哪些&#xff1f; ArrayList 和 LinkedList 的区别&#xff1f; ArrayList 是基于数组实现的,LinkedList 是基于链表实现的. ArrayList实现了RandomAccess接口,可基于下标访问. LinkedList 实现了Deque /dek/,可以当做双端队列使用. 插入效率对比 如果从头部…

Unity的滑动控制相机跟随和第三人称视角三

Unity的相机跟随和第三人称视角三 第三人称相机优化介绍讲解拖动事件相机逻辑人物移动逻辑总结 第三人称相机优化 Unity第三人称相机视角一 Unity第三人称相机视角二 介绍 之前相机视角讲过了两篇文章了&#xff0c;但是都是自动旋转视角&#xff0c;今天来了新需求&#xf…

支部管理系统微信小程序(管理端+用户端)flask+vue+mysql+微信小程序

系统架构如图所示 高校D支部管理系统 由web端和微信小程序端组成&#xff0c;由web端负责管理&#xff0c;能够收缴费用、发布信息、发布问卷、发布通知等功能 部分功能页面如图所示 微信小程序端 包含所有源码和远程部署&#xff0c;可作为毕设课设

网络中UDP编程

网络 1.recvfrom ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen); 功能: 从套接字中接收数据 参数: sockfd:套接字文件描述符 buf:存放数据空间首…

Java 数据结构之链表

public ListNode getIntersectionNode(ListNode headA, ListNode headB) {if (headA null || headB null) return null;ListNode pA headA, pB headB;while (pA ! pB) {pA pA null ? headB : pA.next;pB pB null ? headA : pB.next;}return pA;} public ListNode rev…

Pytorch将数据(张量)写入视频

Pytorch将数据写入视频 1. 安装与报错解决2. torch.io程序3. cv2 img文件转视频参考资料 1. 安装与报错解决 安装 pip install PyAV报错问题1的解决 报错信息如下&#xff1a; ...tf2_py38\lib\site-packages\torchvision\io\video.py", line 41, in _check_av_availab…

解决Git中fatal: refusing to merge unrelated histories

我们在git新建项目的时候一般是先建一个远程仓库&#xff0c;然后本地与之关联&#xff0c;再将本地代码推到远程仓库就可以了&#xff0c;不过有可能返回以下错误&#xff1a; fatal: refusing to merge unrelated histories 这时需要在命令后增加以下命令即可 --allow-unr…

【Unity】【VR开发】如何避免按键冲突

【背景】 VR开发过程中,控制器按键冲突是常有的问题。比如握住手枪时发射子弹用的Trigger,瞬移用的也是Trigger,如何解决这种冲突呢? 【分析】 为了让同一个Trigger按键在不同场景下分别触发合适的动作,需增加判断逻辑来区分场景。具体到当前的问题,需要追加判断逻辑区…

数据库系列之:什么是 SAP HANA?

数据库系列之&#xff1a;什么是 SAP HANA&#xff1f; 一、什么是 SAP HANA&#xff1f;二、什么是内存数据库&#xff1f;三、SAP HANA 有多快&#xff1f;四、SAP HANA 的十大优势五、SAP HANA 架构六、数据库设计七、数据库管理八、应用开发九、高级分析十、数据虚拟化 一、…

通信(四)gRPC

gRPC 1. 简介2. C2.1 编译.proto生成.pb.h和.pb.cc服务器示例客户端示例 3. C#3.1 导入NuGet程序包编译.proto生成.cs和Grpc.cs示例 1. 简介 2. C 2.1 编译.proto生成.pb.h和.pb.cc grpc_cpp_plugin.exe生成编译时.proto自动生成 服务器示例 客户端示例 3. C# 3.1 导入N…

Linux添加虚拟卷

Linux添加虚拟卷 1.在服务器上安装lvm 使用LVM&#xff08;Logical Volume Manager&#xff09;来将多个物理磁盘挂载到同一个逻辑卷 2.创建 用pvcreate将设备初始化为物理卷 sudo pvcreate /dev/${目标设备} #例如 sudo pvcreate /dev/sdb sudo pvcreate /dev/sdc sudo p…

1-安装rabbitmq

rabbitmq官网&#xff1a; https://www.rabbitmq.com/docs/download 本机环境&#xff1a;mac&#xff0c;使用orbstack提供的docker 使用docker部署rabbitmq docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.13-management 然后报错&#xf…

信息安全服务规范包括哪些方面

信息安全服务规范是确保信息系统安全稳定运行的重要指导原则和操作准则。在信息化高速发展的今天&#xff0c;信息安全已经成为国家、企业乃至个人不可忽视的重要议题。因此&#xff0c;制定和执行信息安全服务规范对于保障信息安全、维护社会秩序具有重要意义。 信息安全服务规…

[C/C++]_[初级]_[关于输出double浮点数精度的方法]

场景 在开发WTL/Win32程序时&#xff0c;绘制进度百分比&#xff0c;需要指定这个百分比包括小数点不超过5个字符&#xff0c;也就是除了小数点之外的数字个数最多只显示4个。已知可能出现的数值有1.1,1.1145,22.14… 用什么方式可以获取需要的字符串呢&#xff1f; 说明 绘…

VScode+Zotero+Latex文献引用联动

一、VScodeLatex联动 1、VScode的安装 2、texlive.iso安装 可以参考以下&#xff0c;也可以忽略所有直接一步一步默认安装 https://zhuanlan.zhihu.com/p/442308176 3、Vscode的插件安装&#xff1a;【latex workshop】 4、打开设置&#xff0c;搜索json&#xff0c;然后点击…

MIT 6.S081---Lab: Multithreading

Uthread: switching between threads (moderate) 修改uthread.c&#xff0c;在thread中新增context字段&#xff1a; 修改uthread.c&#xff0c;在thread_create函数中新增以下逻辑&#xff1a; 修改uthread.c中的thread_switch函数定义&#xff1a; 修改uthread.c中的th…

你不得不知道的Python AI库

Python是人工智能&#xff08;AI&#xff09;和机器学习&#xff08;ML&#xff09;领域中使用最广泛的编程语言之一&#xff0c;拥有丰富的库支持各种AI和ML任务。本文介绍一些经典的Python AI库。 1. NumPy 简介&#xff1a;NumPy&#xff08;Numerical Python&#xff09;…

Meta AI移动设备上部署LLM的新框架MobileLLM

Meta AI 研究团队推出的 MobileLLM 标志着大语言模型(LLMs)朝着模拟人类理解和生成自然语言迈出了革命性的一步。LLMs 在处理和分析大量数据集方面的能力已经显著影响了自动化客户服务、语言翻译和内容创作等多个领域。然而,由于传统 LLMs 在计算和存储资源方面的需求庞大,…

centos7中python3.10找不到openssl解决方案

如果有用其他方法安装了其他版本openssl&#xff0c;记得卸载其他的openssl&#xff0c;删除其他的openssl相关文件。 yum remove openssl* rm -rf ***下载最新版的openssl文件 按照官网安装方法安装openssl 官方安装地址https://docs.python.org/3/using/unix.html#on-linu…

代码随想录算法训练营第13天

239. 滑动窗口最大值 &#xff08;一刷至少需要理解思路&#xff09; 方法&#xff1a;暴力法 &#xff08;时间超出限制&#xff09; 注意&#xff1a; 代码&#xff1a; class Solution { public:vector<int> maxSlidingWindow(vector<int>& nums, int k…