css3-grid:grid 布局 / 基础使用

一、理解 grid

 

二、理解 css grid 布局

CSS Grid布局是一个二维的布局系统,它允许我们通过定义网格和网格中每个元素的位置和尺寸来进行页面布局。CSS Grid是一个非常强大的布局系统,它不仅可以用于构建网格布局,还可以用于定位元素,并且可以很好地处理复杂的布局。

CSS Grid布局由两个主要的组成部分组成:容器和项目。容器是我们要定义网格的元素,它的display属性必须设置为grid或inline-grid。而项目是容器内的元素,它们被放置在网格中,并占据一个或多个网格单元。

要创建一个网格布局,我们需要先定义一个网格容器,然后使用grid-template-columns和grid-template-rows属性定义行和列的大小和数量。我们还可以使用grid-column和grid-row属性来控制每个项目在网格中的位置。

除了基本的网格布局,CSS Grid还提供了许多其他的布局特性,如重叠元素、自适应大小、对齐和间距等。这使得我们能够使用CSS Grid来创建各种各样的布局,从简单的网格到复杂的响应式布局,以满足不同的设计需求。

CSS Grid布局是一个灵活、强大和易于使用的布局系统,它提供了许多功能来帮助我们创建各种各样的布局。它已经受到了广泛的支持,并且越来越受到前端开发人员的重视。

三、grid布局有哪些核心概念

序号概念概念描述
1网格容器(Grid Container)包含整个CSS Grid布局的父元素,通过设置该元素的display属性为grid或inline-grid,即可将其定义为网格容器。
2网格线(Grid Line)网格容器中划分行列的分割线,可以通过数字或名称进行标识。
3网格轨道(Grid Track)两个相邻网格线之间的空间称为网格轨道(可以是行轨道或列轨道),可以通过设置grid-template-columns和grid-template-rows属性来定义。
4网格单元(Grid Cell)两个相邻行列网格线交叉形成的方块区域,用于定义网格中的项目。
由四个相邻的网格线所围成的矩形区域,是网格中的基本单位。
5网格项(Grid Item)网格容器中的任何元素都可以成为网格项,规定了网格项在网格单元中的位置和大小。
位于网格单元中的内容,可以是任何HTML元素。
6网格区域(Grid Area)由多个网格单元组成的矩形区域,用于定义项目的位置和跨度。
可以通过grid-template-areas属性进行定义。
7网格模板(Grid Template)通过设置grid-template-columns和grid-template-rows属性来定义网格轨道的大小和数量。
描述网格行数、列数和每个单元格的大小,可以通过grid-template-rows、grid-template-columns和grid-template-areas属性进行定义。
8网格属性(grid property)用于控制网格项在网格容器中的位置和大小,包括grid-row、grid-column、grid-row-start、grid-column-start、grid-row-end、grid-column-end等属性。
9对齐(Alignment)设置网格项在网格单元中水平和垂直方向的对齐方式,可以分别使用justify-items和align-items属性,也可以使用justify-self和align-self属性分别定义每个网格项的对齐方式。
10重叠(Overlap)CSS Grid布局允许网格项在网格单元中互相重叠,这可以通过设置grid-template-areas属性来实现。
理解这些核心概念可以更好地理解和使用CSS Grid布局。

四、浏览器兼容性

不考虑老旧的浏览器已经是可以使用了。

旧版浏览器可能需要添加一些前缀才能支持CSS Grid布局,而新版浏览器已经不需要前缀了。在编写CSS Grid布局时,建议用适当的前缀完成兼容性工作,现在css工具也可以自动添加。

如果您的站点需要支持较老版本的浏览器,可以使用其他CSS布局方式来弥补CSS Grid布局的缺陷。例如,可以使用Flexbox布局或传统的基于表格的布局来实现相应的设计效果。

五、当设置了 grid 布局后,哪些属性将失效

当设置了 grid 布局后,以下属性将失效
序号属性备注
1float
2clear
3display: table-cell
4vertical-align
5width通过 grid-template-columns 和 grid-template-rows 定义列和行宽度
6height通过 grid-template-columns 和 grid-template-rows 定义列和行高度
7margin相关属性(margin-top、margin-right、margin-bottom、margin-left、margin、margin-inline、margin-block)
8padding相关属性(padding-top、padding-right、padding-bottom、padding-left、padding、padding-inline、padding-block)
9display: inline-gridinline-grid 只能定义单行/单列
以上属性失效是因为 grid 布局已经提供了更加灵活和高效的布局方式

六、grid 常用属性

序号属性属性描述
1display用于定义网格容器的类型,可以设置为grid或inline-grid
2grid-template-columns
grid-template-rows
用于定义网格的列数和行数,可以使用长度、百分比、auto、minmax()等值进行设置。
3grid-template-areas用于定义网格区域,在一个字符串中使用空格分隔每个单元格,可以使用句点(.)表示一个空单元格,使用名称为none的单元格将不被占用
4grid-template用于同时定义网格的列数、行数和区域。
5grid-column-gap
grid-row-gap
用于定义网格行和列之间的间隙
6grid-auto-columns
grid-auto-rows
用于定义自动网格的列数和行数,当网格中的单元格无法满足网格模板时,会使用自动网格填充剩余空间。
7grid-auto-flow用于定义自动网格的方向,可以设置为row、column或dense。
8grid-column-start
grid-column-end
grid-row-start
grid-row-end
用于定义单元格的位置,通过网格线的位置进行设置。
9grid-column
grid-row
用于同时定义单元格的开始和结束位置。
10grid-area用于为单元格定义一个名称,以便在grid-template-areas属性中进行引用
了解和掌握这些属性可以帮助我们更好地使用CSS Grid布局来实现网页布局。

七、DEMO

布局:大屏方案(grid)_大屏布局方案_snow@li的博客-CSDN博客

八、欢迎交流指正

参考链接

css3-flex布局:基础使用 / Flexbox布局_snow@li的博客-CSDN博客

grid布局详解 - Des李白 - 博客园

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

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

相关文章

IC流程中 DFT 学习笔记(1)

引言 DFT是ASIC芯片设计流程中不可或缺的环节。其主要目的是在芯片前端设计验证完成后插入一些诸如寄存器链等可供测试的逻辑,算是IC后端设计的范畴。主要是在ASIC芯片流片完成后,通过这些已插入的逻辑,检测流片得到的芯片的制造质量。检测一…

Flink之Partitioner(分区规则)

Flink之Partitioner(分区规则) 方法注释global()全部发往1个taskbroadcast()广播(前面的文章讲解过,这里不做阐述)forward()上下游并行度一致时一对一发送,和同一个算子连中算子的OneToOne是一回事shuffle()随机分配(只是随机,同Spark的shuffle不同)rebalance()轮询分配,默认机…

玩转VS code 之 C/C++ 环境配置篇

PS:俺是菜鸟,整理和踩坑试错花了不少时间,如果这篇文章对您有用的话,请麻烦您留下免费的赞赞,赠人玫瑰,手留余香,码字踩坑不易,望三连支持 上一篇:玩转 VS code 之下载篇…

激活函数总结(十):激活函数补充(Identity、LogSigmoid、Bent Identity)

激活函数总结(十):激活函数补充 1 引言2 激活函数2.1 Identity激活函数2.2 LogSigmoid激活函数2.3 Bent Identity激活函数 3. 总结 1 引言 在前面的文章中已经介绍了介绍了一系列激活函数 (Sigmoid、Tanh、ReLU、Leaky ReLU、PReLU、Swish、…

【Spring系列篇--关于IOC的详解】

目录 面试经典题目: 1. 什么是spring?你对Spring的理解?简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 2.什么是IoC?你对IoC的理解?IoC的重要性?将实例化对象的权利从程序员…

Rust软件外包开发语言的特点

Rust 是一种系统级编程语言,强调性能、安全性和并发性的编程语言,适用于广泛的应用领域,特别是那些需要高度可靠性和高性能的场景。下面和大家分享 Rust 语言的一些主要特点以及适用的场合,希望对大家有所帮助。北京木奇移动技术有…

Windows上使用FFmpeg实现本地视频推送模拟海康协议rtsp视频流

场景 Nginx搭建RTMP服务器FFmpeg实现海康威视摄像头预览: Nginx搭建RTMP服务器FFmpeg实现海康威视摄像头预览_nginx rtmp 海康摄像头_霸道流氓气质的博客-CSDN博客 上面记录的是使用FFmpeg拉取海康协议摄像头的rtsp流并推流到流媒体服务器。 如果在其它业务场景…

【Axure高保真原型】JS日期选择器筛选中继器表格

今天和大家分享JS日期选择器筛选中继器表格的原型模板,通过调用浏览器的日期选择器,所以可以获取真实的日历效果,具体包括哪一年二月份有29天,几号对应星期几,都是真实的,获取日期值后,通过交互…

Unity C# 之 Azure 微软SSML语音合成TTS流式获取音频数据以及表情嘴型 Animation 的简单整理

Unity C# 之 Azure 微软SSML语音合成TTS流式获取音频数据以及表情嘴型 Animation 的简单整理 目录 Unity C# 之 Azure 微软SSML语音合成TTS流式获取音频数据以及表情嘴型 Animation 的简单整理 一、简单介绍 二、实现原理 三、注意事项 四、实现步骤 五、关键代码 一、简…

JVS开源基础框架:平台基本信息介绍

JVS是面向软件开发团队可以快速实现应用的基础开发脚手架,主要定位于企业信息化通用底座,采用微服务分布式框架,提供丰富的基础功能,集成众多业务引擎,它灵活性强,界面化配置对开发者友好,底层容…

嵌入式:ARM Day4

一、自己编写代码实现三盏灯点亮 源码: .text .global _start _start: 进行一次初始化bl RCC_INITbl LED1_INITbl LED2_INITbl LED3_INITb looploop: 循环开关灯bl LED1_ONbl delay_1sbl LED1_OFFbl delay_1sbl LED2_ONbl delay_1sbl LED2_OFFbl delay_1sbl…

kafka线上问题优化

如何防止消息丢失 生产者: 使用同步发送把ack设成1或者all(非0,0可能会出现消息丢失的情况),并且设置同步的分区数>2 消费者:把自动提交改成手动提交 如何防止重复消费 在防止消息丢失的方案中&#…

每天一道leetcode:1926. 迷宫中离入口最近的出口(图论中等广度优先遍历)

今日份题目: 给你一个 m x n 的迷宫矩阵 maze (下标从 0 开始),矩阵中有空格子(用 . 表示)和墙(用 表示)。同时给你迷宫的入口 entrance ,用 entrance [entrancerow, …

配置vscode

配置vscode 设置相关 网址:https://code.visualstudio.com/ 搜索不要用百度用这个:cn.bing.com 1.安装中文包 Chinese (Simplified) (简体中文) 2.安装 open in browser 3.安装主题 Atom One Dark Theme 4. 安装图标样式 VSCode Great Icons 5.安装 L…

使用navicat连接postgresql报错问题解决

使用navicat连接postgresql报错问题解决 一、问题现象: 最近使用Navicat来连接postgreSQL数据库,发现连接不上,报错信息如下: 自己百度了一下,发现pgsql 15版本以后,有些系统表的列名改了,pg_…

HTTPS 的加密流程

目录 一、HTTPS是什么? 二、为什么要加密 三、"加密" 是什么 四、HTTPS 的工作过程 1.对称加密 2.非对称加密 3.中间人攻击 4.证书 总结 一、HTTPS是什么? HTTPS (Hyper Text Transfer Protocol Secure) 是基于 HTTP 协议之上的安全协议&…

关于Android Studio Http Proxy设置

对敌人最大的蔑视就是沉默。--鹿丸 我们使用Android Studio 开始构建的时候会有卡顿的情况,甚至死机,也就是所谓的【android studio】构建卡住问题,如果依赖库类都是国内的,检查是否开启了代理 这个地方选择下面的自动代理 国内…

Visual Studio 2019 c++ 自定义注释 ----doxygen

可加入C 也可自定义。 <?xml version"1.0" encoding"utf-8"?> <CodeSnippets xmlns"http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"><CodeSnippet Format"1.0.0"><Header><Title>注释…

打开vim的语法高亮

在一个Ubuntu中自带的vim版本是8.2.4919&#xff0c;默认就是开始了语法高亮的&#xff0c;打开一个Java文件效果如下&#xff1a; 它不仅仅对Java文件有语法高亮&#xff0c;对很多的文件都有&#xff0c;比如vim的配置文件也有语法高亮&#xff0c;有语法高亮时读起来会容易…

【左神算法刷题班】第17节:在有序二维数组中查找目标值、等于目标字符串的子序列个数

第17节 题目1&#xff1a;在有序二维数组中查找目标值 给定一个每一行有序、每一列也有序&#xff0c;整体可能无序的二维数组 再给定一个数num&#xff0c; 返回二维数组中有没有num这个数 例子 数组如下&#xff0c;找 6 是否存在。 1 3 5 7 2 4 6 13 3 9 14 …