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;可作为毕设课设

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…

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

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

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;制定和执行信息安全服务规范对于保障信息安全、维护社会秩序具有重要意义。 信息安全服务规…

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;…

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…

数据分析方法(一)|认知数据

在进行数据分析时&#xff0c;很多人拿到数据之后没有头绪&#xff0c;在没有需求的情况下不知道从何做起&#xff0c;此时我们不妨先动起脑来理解数据。 分析数据之前&#xff0c;清晰的认识数据是非常重要的&#xff0c;通常我们可以从以下几个角度对数据进行深入了解&#x…

推荐5款极具效率的实用工具软件

​ 每次分享实用的软件,都会给人一种踏实和喜悦的感觉,这也是我热衷于搜集和推荐高效工具软件的原因。 1.个人日记软件——EDiary ​ EDiary是一款功能丰富的个人日记软件&#xff0c;用户可以在不联网的状态下使用&#xff0c;保护隐私。它支持日记、记事本、日历、事件提醒…

word如何实现不同章节显示不同页眉

一、问题描述 写论文时遇到如下情形&#xff0c;第二章页眉跟第一章一样&#xff0c;如下图 二、解决方法 在第二章前一页空白处&#xff0c;选择依次布局→分隔符→下一页&#xff0c;如下图 双击第二章页眉&#xff0c;进入页眉编辑状态&#xff0c;点击链接到前一节按钮&a…

chrome浏览器插件content.js和background.js还有popup都是什么,怎么通讯

popup 在用户点击扩展程序图标时&#xff08;下图中的下载图标&#xff09;&#xff0c;都可以设置弹出一个popup页面。而这个页面中自然是可以包含运行的js脚本的&#xff08;比如就叫popup.js&#xff09;。它会在每次点击插件图标——popup页面弹出时&#xff0c;重新载入。…

Spring之Bean详解

Spring之Bean详解 什么是Bean&#xff1f; 在Spring中&#xff0c;Bean是指由Spring容器管理的对象&#xff0c;这些对象是由Spring IoC容器负责创建、组装和管理的。Bean可以是Java类的实例&#xff0c;也可以是其他Spring管理的组件&#xff0c;例如数据源、事务管理器等。…

FPGA——三速自适应以太网设计(2)GMII与RGMII接口

FPGA——以太网设计&#xff08;2&#xff09;GMII与RGMII 基础知识&#xff08;1&#xff09;GMII&#xff08;2&#xff09;RGMII&#xff08;3&#xff09;IDDR GMII设计转RGMII接口跨时钟传输模块 基础知识 &#xff08;1&#xff09;GMII GMII:发送端时钟由MAC端提供 下…

NextJs教程系列(三):路由layout

可复用的布局 Next.js的layout是一个可复用的布局&#xff0c;不同的子页面可以共享布局容器&#xff0c;页面跳转时&#xff0c;layout容器不会重新渲染。 children props export default function RootLayout({ children }) {return (<html lang"en"><…

怎么做加密文件二维码?分享文件更安全

怎么做一个加密文件二维码&#xff1f;在日常的工作和生活中&#xff0c;通过扫描二维码来查看或者下载文件的方式&#xff0c;被越来越多的人所使用&#xff0c;一方面是二维码的成本低&#xff0c;另一方面有利于提升便捷性和用户体验。 为了保证内容的隐私性和安全性&#…