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 布局后,以下属性将失效 | ||
序号 | 属性 | 备注 |
1 | float | |
2 | clear | |
3 | display: table-cell | |
4 | vertical-align | |
5 | width | 通过 grid-template-columns 和 grid-template-rows 定义列和行宽度 |
6 | height | 通过 grid-template-columns 和 grid-template-rows 定义列和行高度 |
7 | margin | 相关属性(margin-top、margin-right、margin-bottom、margin-left、margin、margin-inline、margin-block) |
8 | padding | 相关属性(padding-top、padding-right、padding-bottom、padding-left、padding、padding-inline、padding-block) |
9 | display: inline-grid | inline-grid 只能定义单行/单列 |
以上属性失效是因为 grid 布局已经提供了更加灵活和高效的布局方式 |
六、grid 常用属性
序号 | 属性 | 属性描述 |
1 | display | 用于定义网格容器的类型,可以设置为grid或inline-grid |
2 | grid-template-columns grid-template-rows | 用于定义网格的列数和行数,可以使用长度、百分比、auto、minmax()等值进行设置。 |
3 | grid-template-areas | 用于定义网格区域,在一个字符串中使用空格分隔每个单元格,可以使用句点(.)表示一个空单元格,使用名称为none的单元格将不被占用 |
4 | grid-template | 用于同时定义网格的列数、行数和区域。 |
5 | grid-column-gap grid-row-gap | 用于定义网格行和列之间的间隙 |
6 | grid-auto-columns grid-auto-rows | 用于定义自动网格的列数和行数,当网格中的单元格无法满足网格模板时,会使用自动网格填充剩余空间。 |
7 | grid-auto-flow | 用于定义自动网格的方向,可以设置为row、column或dense。 |
8 | grid-column-start grid-column-end grid-row-start grid-row-end | 用于定义单元格的位置,通过网格线的位置进行设置。 |
9 | grid-column grid-row | 用于同时定义单元格的开始和结束位置。 |
10 | grid-area | 用于为单元格定义一个名称,以便在grid-template-areas属性中进行引用 |
了解和掌握这些属性可以帮助我们更好地使用CSS Grid布局来实现网页布局。 |
七、DEMO
布局:大屏方案(grid)_大屏布局方案_snow@li的博客-CSDN博客
八、欢迎交流指正
参考链接
css3-flex布局:基础使用 / Flexbox布局_snow@li的博客-CSDN博客
grid布局详解 - Des李白 - 博客园
相关文章:

css3-grid:grid 布局 / 基础使用
一、理解 grid 二、理解 css grid 布局 CSS Grid布局是一个二维的布局系统,它允许我们通过定义网格和网格中每个元素的位置和尺寸来进行页面布局。CSS Grid是一个非常强大的布局系统,它不仅可以用于构建网格布局,还可以用于定位元素…...

如何在windows电脑安装多个tomcat服务器和乱码问题
前提条件安装jdk 以17版本为例,将jdk8卸载干净 1.首先进入tomcat官网下载 tomcat网址 这里下载tomcat10为例子 1.1 这里选择方式一 下载解压版 2.解压后拷贝三份 分别命名为 8081、 8082、 8083 3.分别对每个tomcat执行以下操作 3.1 找到tomcat所在webapps文…...

flutter:webview_flutter的简单使用
前言 最近在研究如何在应用程序中嵌入Web视图,发现有两个库不错。 一个是官方维护、一个是第三方维护。因为没说特别的需求,就使用了官方库,实现一些简单功能是完全ok的 基本使用 官方文档 https://pub-web.flutter-io.cn/packages/webv…...

Ansys Zemax | 手机镜头设计 - 第 1 部分:光学设计
本文是 3 篇系列文章的一部分,该系列文章将讨论智能手机镜头模组设计的挑战,从概念、设计到制造和结构变形的分析。本文是三部分系列的第一部分,将专注于OpticStudio中镜头模组的设计、分析和可制造性评估。(联系我们获取文章附件…...
jvm从入门到精通
jvm 1.jvm与java体系结构...

[NLP]LLM 训练时GPU显存耗用量估计
以LLM中最常见的Adam fp16混合精度训练为例,分析其显存占用有以下四个部分: GPT-2含有1.5B个参数,如果用fp16格式,只需要1.5G*2Byte3GB显存, 但是模型状态实际上需要耗费1.5B*1624GB. 比如说有一个模型参数量是1M,在…...

Unity引擎使用InteriorCubeMap采样制作假室内效果
Unity引擎制作假室内效果 大家好,我是阿赵。 这次来介绍一种使用CubeMap做假室内效果的方式。这种技术名叫InteriorCubeMap,是UE引擎自带的节点效果。我这里是在Unity引擎里面的实现。 一、效果展示 这个假室内效果,要动态看才能看出效…...

Gin安装解决国内go 与 热加载
get 方式安装超时问题,国内直接用官网推荐的下面这个命令大概率是安装不成功的 go get -u github.com/gin-gonic/gin 可以在你的项目目录下执行下面几个命令: 比如我的项目在E:\Oproject\zl cmd E:\Oproject\zl>就在目录下执行 go env -w GO111…...

安防监控视频云存储平台EasyCVRH.265转码功能更新:新增分辨率配置
安防视频集中存储EasyCVR视频监控综合管理平台可以根据不同的场景需求,让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采集、接入与多端分发。在视频能力上,视频云存储平台EasyCVR可实现视频实时直播、云端录像、视频云存储、视频存储…...
Linux 创建用户赋予root权限,并限定登录ip
1.创建jms用户 创建组 groupadd jms创建用户 -g 指定分组 useradd -m -d /home/jms jms -g jms -s /bin/bash设置用户密码 passwd jms2.赋予root权限 编辑文件 vim /etc/sudoers添加如下内容 jms ALL(ALL:ALL) NOPASSWD: ALL3.限定登录ip 编辑文件,在末尾添…...

基于令牌级 BERT 嵌入的趋势生成句子级嵌入
一、说明 句子(短语或段落)级别嵌入通常用作许多 NLP 分类问题的输入,例如,在垃圾邮件检测和问答 (QA) 系统中。在我上一篇文章发现不同级别的BERT嵌入的趋势中,我讨论了如何生成一个向量表示&a…...

计算机视觉目标检测性能指标
目录 精确率(Precision)和召回率(Recall) F1分数(F1 Score) IoU(Intersection over Union) P-R曲线(Precision-Recall Curve)和 AP mAP(mean…...
什么是webpack?如何在项目中安装配置webpack?
webpack 是前端项目工程化的具体解决方案。 它提供了友好的前端模块化开发支持,以及代码压缩混淆、处理浏览器端 JavaScript 的兼容性、性能优化等强大的功能。 让程序员把工作的重心放到具体功能的实现上,提高了前端开发效率和项目的可维护性。目前企业…...

linux两台服务器互相备份文件(sshpass + crontab)
crontab crontab是linux系统自带的定时调度软件,可用于设置周期性被执行的指令,一般用在每天的非高峰负荷时间段运行作业,可在无需人工干预的情况下运行作业。支持在一周或一月中的不同时段运行。 crontab命令允许用户提交、编辑或删除相应的…...
Flask框架-配置日志(1):flask使用日志
一、项目结构 study_flask --| apps/ --| __init__.py --| base/ --| logger.py --| __init__.py --| app.py 二、配置日志功能 1、base/logger.py import os import logging from datetime import datetime,date,timedelta from logging.handlers import RotatingFileHandl…...

每天一道leetcode:1192. 查找集群内的关键连接(图论困难tarjan算法)
今日份题目: 力扣数据中心有 n 台服务器,分别按从 0 到 n-1 的方式进行了编号。它们之间以 服务器到服务器 的形式相互连接组成了一个内部集群,连接是无向的。用 connections 表示集群网络,connections[i] [a, b] 表示服务器 a …...
解决Windows系统远程登陆后vscdoe无法输入字符,键盘没有反应,鼠标可以点击,没有反应
文章目录 前言操作过程 前言 使用vscode编译器时,通过远程登录或者屏幕锁屏解锁后,vscode出现无法输入字符内容,但vscode没有死机,切换到其他软件的窗口再切换回来后,可以使用鼠标点击,但是只要使用键盘输…...
axios同一个接口,同时接收 文件 或者 数据
1、前端代码 const service axios.create({baseURL: "http://192.168.2.200:8080/api",timeout: 180000 })// 响应拦截 service.interceptors.response.use(async response > {if(response){// 请求时设置返回blob, 但是实际上可能返回的是json的情况if (respon…...

【腾讯云 TDSQL-C Serverless产品体验】抓取processon热门模版的标题生成词云
【腾讯云 TDSQL-C Serverless产品体验】抓取processon热门模版的标题生成词云 serverless服务是腾讯云自研的新一代云原生关系型数据库TDSQ L-C的无服务器架构版,是全Serverless架构的云原生数据库 前言 体验了一下腾讯云刚出的TDSQL-C Serverless,使用…...

算法通关村第九关 | 二叉树查找和搜索树原理
1. 二分查找的扩展问题 1.1山脉数组的巅峰索引 LeetCode852:题目核心意思是在数组中,从0到i是递增的,从i1到数组最后是递减的,让你找到这个最高点。 三种情况: mid在上升阶段的时候,满足arr[mid] > a…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态
前言 在人工智能技术飞速发展的今天,深度学习与大模型技术已成为推动行业变革的核心驱动力,而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心,系统性地呈现了两部深度技术著作的精华:…...
LangChain【6】之输出解析器:结构化LLM响应的关键工具
文章目录 一 LangChain输出解析器概述1.1 什么是输出解析器?1.2 主要功能与工作原理1.3 常用解析器类型 二 主要输出解析器类型2.1 Pydantic/Json输出解析器2.2 结构化输出解析器2.3 列表解析器2.4 日期解析器2.5 Json输出解析器2.6 xml输出解析器 三 高级使用技巧3…...
CppCon 2015 学习:REFLECTION TECHNIQUES IN C++
关于 Reflection(反射) 这个概念,总结一下: Reflection(反射)是什么? 反射是对类型的自我检查能力(Introspection) 可以查看类的成员变量、成员函数等信息。反射允许枚…...