当前位置: 首页 > news >正文

CSS-grid布局

  • 网格布局也叫grid布局,平常写样式的时候基本上都是用的flex布局。
    像以下布局,用flex布局就可能会有有点麻烦,这时候用grid布局就方便的多了。

在这里插入图片描述
在这里插入图片描述

或者是照片墙

grid布局就是将容器划分为行和列,产生单元格,然后在指定的单元格,可以看作是二维布局,我们一直经常用的flex布局也就可以看作一维布局。
介绍
gird布局很强大,采用网格布局的区域,称为容器。容器内部子元素,称为项目,即container->item。
容器属性
Gird布局的属性分为两类。一类定义在容器上面,称为容器属性,另一类定义在项目上面,称为项目属性。这部分先介绍容器属性。
display属性
display: grid指定一个容器采用网格布局。
1.grid的属性

  1. grid-template-columns:定义每一行列的列宽。
  2. grid-template-rows:定义每一行的行高。
    还有一种重复某种不固定大小模式:
    grid-template-columns:repeat(2,100px 80px);
    代表重复2次100px 80px的模式,也就是4列,等同于:
    grid-template-columns:100px 80px 100px 80px;
    下面举个例子:
    HTM:
1
2
3
4
5
6
7
8
9
css: .father { display: grid; grid-template-columns: 100px 100px 100px; grid-template-rows: 100px 100px 100px; grid-template-columns: repeat(2, 100px 80px); } 效果:![在这里插入图片描述](https://img-blog.csdnimg.cn/532f6ce68e2641c79b9c0e1808400dd1.png)

上面写了9个元素,分别给了不同的颜色,根据 grid-template-columns和grid-template-rows或者grid-template-columns来设置他们的大小,这里的特殊就是,如果不给里面各个单元格大小,那么设置的列宽和行高就会去设置成每个单元格的大小,如果给了大小,那么设置的就是每个单元格之前的间距了。
2.关键字
1.auto-fill;如果容易大小不固定,项目大小固定,可以用auto-fill关键字填充;
自动填充: repeat(auto-fill, 30px)
在这里插入图片描述

也就是设置每个单元格的大小都一样,然后并列排放。
2.fr(fraction):如果两列的宽分别是1fr和2fr,就表示后者是前者的两杯。
例子:
grid-template-columns: 1fr 2fr 4fr 1fr 1fr;
在这里插入图片描述

这里设置后会发现如果设置的列多了,那后者的倍数都是基于第一位叠加的。
3.minmax();长度范围
grid-template-columns: 1fr 5fr minmax(100px, 1fr);
在这里插入图片描述

第一列是1fr,第二列是5fr,第三列最小值是100px,最大是1fr。当第二列fr无限大时和的第三列到100px时,会往第一列截止。这里指的无限大也就是没有父级设置大小。
4.auto;自适应
grid-template-columns: 100px auto 100px;
在这里插入图片描述

自适应也就是自动填充完剩余的空间(不设置最大值最小值的情况下)
5.网格名称
网格闲名称,同一根线可以有多个名称:
grid-template-columns: [c1] 100px [c2] 100px [c3] auto [c4];
指定每一根网格线的名字,方便以后的引用。也可以有多个名字;[c1,c1a]
6.区域
grid-template-areas:网格布局允许置顶区域(area),一个区域由单元格或多个单元格组成。grid-template-areas属性用于定义区域。
grid-template-areas: ‘a b c’ ‘d e f’ ‘g h i’;
div:nth-child(1) {
grid-area: a;
}
在这里插入图片描述

可以实现类似于这样一个单元格占多个位置的情况。
7.放置顺序
grid-auto-flow:划分网格后,容器的子元素也会按照顺序,自动放置在每一个网格中。默认的放置顺序是"先行后列",即先填满第一行,再开始放入第二行;也可设置为column变成先填满第一列再填第二列;
grid-auto-flow:column
在这里插入图片描述

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

  • start:对齐单元格的起始边缘。
  • end:对齐单元格的结束边缘。
  • center:单元格内部居中。
  • stretch:拉伸,占满单元格的整个宽度(默认值)。
    justify-items:
    align-items:
    在这里插入图片描述

9.整体内容的位置
justify-content:整个内容区域在容器里面的水平位置(左中右);
align-content:整个内容区域的垂直位置(上中下)。
justify-content
align-content
在这里插入图片描述

总结
Flex布局是轴线布局,只能指定"项目"针对轴线的位置,可以看作是一维布局,Grid 布局则是将容器划分成“行"和“列”,产生单元格,然后指定"项目所在”的单元格,可以看作是二维布局,Grid布局远比 Flex布局强大。(不过存在兼容性问题,使用之前应看具体需求)
兼容性

https://caniuse.com/?search=grid

相关文章:

CSS-grid布局

网格布局也叫grid布局,平常写样式的时候基本上都是用的flex布局。 像以下布局,用flex布局就可能会有有点麻烦,这时候用grid布局就方便的多了。 或者是照片墙 grid布局就是将容器划分为行和列,产生单元格,然后在指定的…...

【JavaEE进阶】Bean 作用域和生命周期

文章目录 一. 关于Bean作用域的实例1. lombok2. 实例代码 二. 作用域定义1. Bean的六种作用域2. 设置作用域 三. Spring 执行流程和 Bean 的生命周期1. Spring 执行流程2. Bean生命周期 一. 关于Bean作用域的实例 注意在此例子中需要用到lombok 1. lombok lombok是什么? Lo…...

3分钟自建查分系统?现在每个人都可以实现了

学生成绩查询系统在现代教育管理中扮演着重要的角色,它不仅可以方便学生和家长查询成绩,也能帮助老师更好地管理和分析学生的学业表现。作为一名教师,了解如何制作学生成绩查询系统是提高教学效率和管理学生成绩便利性的关键。 在制作学生成…...

关于APP备案、小程序备案的问题,如何备案?

近日,工信部发布了关于开展移动互联网应用程序备案工作的通知。为落实相关法律法规要求,促进互联网行业规范健康发展,进一步做好移动互联网信息服务管理,现组织开展移动互联网应用程序(以下简称 APP)备案工…...

git上传代码后,如何清空历史日志以及文件操作,重新上传?以及上传代码

【Git教程】如何清除git仓库的所有提交记录,成为一个新的干净仓库  马三也算Github的忠实用户了,经常会把一些练手的项目传到Github上面进行备份。其中有一个名为ColaFramework的Unity框架项目,马三开发了一年多了,期间提交代码的…...

超导热催生meme,换汤不换药的投机轮回

文/章鱼哥 出品/陀螺财经 币圈对炒作meme概念的热情从未消亡过。 随着一种名为LK-99的物质被发现,围绕超导的兴奋不仅激发了科学界,加密货币相关概念也与之沸腾。不出所料,与此前围绕元宇宙、AI大肆炒作一样,许多meme代币已经出现…...

【HashMap】 73. 矩阵置零

73. 矩阵置零 解题思路 首先遍历矩阵找到所有的0元素 将其的行和列索引记录下俩遍历矩阵 将所有的需要更新的元素进行更新 也就是查找hashmap中的每一个元素进行更新查找行或者列是否在hashmap中 class Solution {public void setZeroes(int[][] matrix) {// 首先遍历矩阵找…...

Vue-2.nodejs的介绍和安装

nodejs简介 ► 创建 Node.js 应用:package.json 首先,创建一个新文件夹以便于容纳需要的所有文件,并且在此其中创建一个 package.json 文件,描述你应用程序以及需要的依赖: 配合着你的 package.json 请运行 npm install。如果你…...

分别用Vue和Java来实现的风靡一时的2048 游戏

目录 1、Vue实现2、Java实现 2048 游戏是一个基于网格的数字益智游戏,玩家需要通过滑动相同的数字来合并它们,并最终得到一个值为 2048 的方块。以下是分别用Vue和Java来实现的 2048 游戏,包含运行效果。 1、Vue实现 首先,创建一…...

echarts甘特图 一个值多条线

先看图 这里我们用到的是 series :type:custom 自定义,但是这里我遇到一个问题,就是不过你在series里push多少数据,图表上显示的都是在同一水平线,用了好多方法都不好使, renderItem: (params, api) >…...

多态性说明

多态 多态性多态性类型描述编译时多态和运行时多态的差异go 语言多态性 多态性 多态性类型描述 多态性是面向对象编程中的一个重要概念,它允许不同的对象通过相同的接口表现出不同的行为,从而实现更加灵活和可扩展的代码结构。多态性有助于降低代码的耦…...

2023-08-04 LeetCode每日一题(不同路径 III)

2023-08-04每日一题 一、题目编号 980. 不同路径 III二、题目链接 点击跳转到题目位置 三、题目描述 在二维网格 grid 上,有 4 种类型的方格: 1 表示起始方格。且只有一个起始方格。2 表示结束方格,且只有一个结束方格。0 表示我们可以…...

腾讯云服务器地域怎么选?可用区是什么?

腾讯云服务器地域有什么区别?怎么选择比较好?地域选择就近原则,距离地域越近网络延迟越低,速度越快。关于地域的选择还有很多因素,地域节点选择还要考虑到网络延迟速度方面、内网连接、是否需要备案、不同地域价格因素…...

第一百二十三天学习记录:C++提高:STL-vector容器(下)(黑马教学视频)

vector插入和删除 功能描述: 对vector容器进行插入、删除操作 函数原型: push_back(ele); //尾部插入元素ele pop_back(); //删除最后一个元素 insert(const_iterator pos, ele); //迭代器指向位置pos插入元素ele insert(const_iterator pos, int cou…...

谈谈Spring与字节码生成技术

Spring框架是一个面向企业级Java应用开发的开源框架,它提供了许多功能和特性来简化Java开发过程。字节码生成技术在Spring框架中起着重要的作用,用于实现依赖注入(Dependency Injection)和面向切面编程(Aspect-Oriente…...

Java数组详解 -- 基础知识与常用操作

文章目录 前言一、初识数组1. 数组的定义2. 数组的特点3. 声明和初始化数组4. 默认初始化值 二、访问和操作数组元素1. 数组的索引和范围2. 通过索引访问数组元素3. 修改数组元素的值 三、数组的长度和属性1. 数组的长度计算2. 数组的长度属性3. 数组越界的错误 四、数组的遍历…...

(统计学习方法|李航)第五章 决策树——一二三节:决策树模型与学习,特征选择,决策树的生成,

目录 一,决策树模型与学习 1.决策数模型 2.决策树与if-then规则 3.决策树与条件概率分布 4.决策树学习 二,特征选择 1.特征选择问题 2.信息增益 3.信息增益比 三,决策树的生成 1.ID3算法 2.C4.5的生成算法 一,决策树模型…...

qt lamda表达式及捕获变量列表符号说明及示例

问题描述: 最近发现很多人都喜欢用Lamda表达式了,至于他们到底知不知道自己用的是什么意思,那就另说了。 虽然我个人并不太喜欢,因为很多地方没法像以前信号和槽那样清晰了,而且很多生成UML的软件估计也不支持解析转成对应的序列图啥的。 但是这个lamda写法确实挺方便的…...

第十六章、【Linux】程序管理与SELinux初探

16.1 什么是程序 (process) 在Linux 系统当中:“触发任何一个事件时,系统都会将他定义成为一个程序,并且给予这个程序一个 ID ,称为 PID,同时依据启发这个程序的使用者与相关属性关系&#xff…...

ElasticSearch索引生命周期管理--DELETE

概要 ElasticSearch中的索引生命周期管理,也就是ilm(Manage the index lifecycle),是指定了索引在不同周期下的处理策略。ilm 的对象是索引而不是索引中的数据。ilm 包括四个阶段:hot 、warm、cold和delete。hot、warm和cold表示…...

一篇文章彻底弄懂C++虚函数的实现机制

1、虚函数简介C中有两种方式实现多态,即重载和覆盖。重载:是指允许存在多个同名函数,而这些函数的参数表不同(参数个数不同、参数类型不同或者两者都不同)。覆盖:是指子类重新定义父类虚函数的做法&#xf…...

品牌升级后卖不动,先别怪设计公司

品牌升级了,为什么销量没变化?很多企业做品牌升级,心里其实都憋着一口气。老板觉得产品不差,工厂不差,渠道也不是完全没有基础,就是品牌看起来有点旧,包装有点老,表达有点土&#xf…...

打包 Android beeware briefcase

#安装 Android SDK,然后执行: briefcase create android briefcase build android *briefcase run android #连接安卓手机或模拟器运行 briefcase package android #打包为.APK...

凌晨两点数据库主从延迟告警,我用 binlog + pt-query-digest 在十分钟内还原了事故链

凌晨两点数据库主从延迟告警,我用 binlog pt-query-digest 在十分钟内还原了事故链 凌晨两点十七分,手机震醒我的不是闹钟,是 PagerDuty。主从延迟 38 秒,还在涨。我第一反应不是慌张,是兴奋——终于来了个能写进简历…...

告别‘鬼踩油门’!用ADI的ADBMS6832芯片,手把手教你读懂电车BMS的‘心跳’信号

解码电动汽车的"生命体征":ADBMS6832芯片如何重塑BMS监测体验 当你的电动汽车在寒冬清晨突然"罢工",或是满电状态下加速却像被无形力量拖拽时,这很可能不是车辆在闹脾气,而是电池管理系统(BMS&…...

文本数据净化与脱敏实战:构建安全高效的数据预处理流水线

1. 项目概述与核心价值最近在整理个人知识库和开源项目时,发现一个非常普遍但棘手的问题:如何安全、高效地处理来自不同渠道的文本数据,特别是那些可能包含用户隐私、敏感信息或格式混乱的内容。无论是从网页爬取的数据、用户提交的表单&…...

RWKV7-1.5B-World算法解析:从Transformer到RNN的架构创新

RWKV7-1.5B-World算法解析:从Transformer到RNN的架构创新 1. 模型架构概览 RWKV7-1.5B-World是一种融合了Transformer和RNN优势的混合架构模型。它保留了Transformer强大的表达能力,同时引入了RNN的高效序列处理特性。这种创新设计使其在处理长序列任务…...

CSS怎样调整弹性项目排列顺序_使用order属性轻松控制DOM显示顺序

order属性未生效最常见的原因是父容器未设置display: flex或inline-flex;它仅作用于弹性项目,且按数值升序排列,不影响DOM顺序及可访问性。order属性为什么没生效最常见的原因是父容器没设 display: flex 或 display: inline-flex。Flex布局里…...

Java 25虚拟线程调度突然卡顿?5步精准诊断法(含jcmd+AsyncProfiler+VirtualThreadMonitor三工具联动脚本)

更多请点击: https://intelliparadigm.com 第一章:Java 25虚拟线程资源调度优化 Java 25 引入了对虚拟线程(Virtual Threads)调度器的深度重构,核心在于将平台线程(Platform Thread)与虚拟线程…...

想要副业增收、入职网安?这份 SRC 漏洞挖掘全流程指南,帮你快速上手漏洞挖掘

凌晨两点,大学生张三盯着电脑屏幕突然跳出的「高危漏洞奖励到账」提示,手抖得差点打翻泡面——这是他挖到人生第一个SRC漏洞(某电商平台的越权访问漏洞)后收到的第一笔奖金,金额足够支付三个月生活费。这样的故事&…...