前端flex、grid布局
flex布局
弹性布局是指通过调整其内元素的宽高,从而在任何的显示设备上实现对可用显示空间最佳填充的能力。弹性容器扩展其内元素来填充可用空间,或将其收缩来避免溢出
简单来说,弹性盒子模型,是为了你的网页可以在不同分辨率设备上自适应展示而生的一种布局方式
以下面的例子来理解弹性布局:
<div id="main"><div style="background-color:coral;">A</div><div style="background-color:lightblue;">B</div><div style="background-color:khaki;">C</div><div style="background-color:pink;">D</div><div style="background-color:lightgrey;">E</div><div style="background-color:lightgreen;">F</div>
</div>
弹性容器:包含着弹性项目的父元素,即上面的 #main
弹性项目:弹性容器的每个子元素,弹性容器直接包含的文本将被包覆成匿名弹性单元
每个弹性框布局都包含两个轴,弹性项目沿其依次排列的那根轴称为主轴,垂直于主轴的那根轴称为侧轴
flex-direction
flex-direction 可以确立主轴,这个属性一共有 6 个值
row:默认值,水平展开 | |
---|---|
row-reverse:与 row 相同,但是以相反的顺序 | |
column:弹性项目将垂直展示 | |
column-reverse:与 column 相同,但是以相反的顺序 | |
initial:设置该属性为它的默认值 | |
inherit:从父元素继承该属性 |
justify-content
justify-content: 定义了在当前行上,弹性项目沿主轴如何排布
flex-start:默认值,项目位于容器的开头 | |
---|---|
flex-end: 项目位于容器的结尾 | |
center:项目位于容器的中间 | |
space-between: 项目位于各行之间留有空白的容器内 | |
space-around:项目位于各行之前、之间、之后都留有空白的容器内 | |
initial:设置该属性为它的默认值 | |
inherit:从父元素继承该属性 |
align-items
align-items: 定义了弹性项目在侧轴是如何排布
stretch:默认值,项目被拉伸以适应容器 | |
---|---|
center:项目位于容器的中心 | |
flex-start:项目位于容器的开头 | |
flex-end:项目位于容器的结尾 | |
baseline:项目位于容器的基线上 | |
initial:设置该属性为它的默认值 | |
inherit:从父元素继承该属性 |
如果只想改变单个弹性项目的对齐方式,就用align-self,它定义了单个弹性项目在侧轴上应当如何对齐,这个定义会覆盖由 align-items 所确立的默认值
order: 属性将元素与序号关联起来,以此决定哪些元素先出现
flex-wrap
flex-wrap:规定 flex 容器是单行或者多行,同时横轴的方向决定了新行堆叠的方向
nowrap:默认值,规定灵活的项目不拆行或不拆列 | |
---|---|
wrap:默认值,规定灵活的项目在必要时拆行或拆列 | |
wrap-reverse:规定灵活的项目在必要的时候拆行或拆列,但是以相反的顺序 | |
initial:设置该属性为它的默认值 | |
inherit:从父元素继承该属性 |
flex-flow:是 flex-direction 和 flex-wrap 属性的简写,决定弹性项目如何排布
flex-grow、flex-shrink 和 flex-basis
flex 属性是 flex-grow、flex-shrink 和 flex-basis 的简写,描述弹性项目的整体伸缩性
1)flex-grow
flex-grow: 用于设置或检索弹性盒的扩展比率,默认等于 0,即使用本来的宽度,不拉伸;等于 1 时,就表示该项目宽度拉伸,占据当前行的所有剩余宽度
#main{width: 500px;height: 200px;border: 1px solid #c3c3c3;display:flex;background: red;
}
#main div{width: 40px;
}
.a{flex-grow: 2;
}
.b{flex-grow: 3;
}
.c{flex-grow: 1;
}
.d{flex-grow: 3;
}
.e{flex-grow: 2;
}
.f{flex-grow: 1;
}
2)flex-shrink
flex-shrink: 指定了 flex 元素的收缩规则,默认值为 1,当父元素的宽度小于所有子元素的宽度的和时,子元素的宽度会减小。值越大,减小越厉害;如果值为0,表示不减小
<p>div 总宽度为 500px, flex-basic 为 120px。</p>
<p>A, B, C 设置 flex-shrink:1。 D , E 设置为 flex-shrink:2</p>
<p>D , E 宽度与 A, B, C 不同</p>
<div id="content"><div class="box" style="background-color:red;">A</div><div class="box" style="background-color:lightblue;">B</div><div class="box" style="background-color:yellow;">C</div><div class="box1" style="background-color:brown;">D</div><div class="box1" style="background-color:lightgreen;">E</div>
</div>
3)flex-basis
flex-basis:用于设置或检索弹性盒伸缩基准值,初始值为 auto,指定了 item 在 flex 布局中的初始大小(前提是不改变盒模型的 box-sizing),所谓的初始尺寸就是元素在 flex-grow 和 flex-shrink 生效前的尺寸,它的优先级高于 width
grid布局
网格布局它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局
grid 布局与 flex 布局有一定的相似性,都可以指定容器内部多个项目的位置,但它们也存在重大区别:
- flex 布局是轴线布局,只能指定"项目"针对轴线的位置,可以看作是一维布局
- grid 布局则是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以看作是二维布局
css grid网格布局教程
相关文章:

前端flex、grid布局
flex布局 弹性布局是指通过调整其内元素的宽高,从而在任何的显示设备上实现对可用显示空间最佳填充的能力。弹性容器扩展其内元素来填充可用空间,或将其收缩来避免溢出 简单来说,弹性盒子模型,是为了你的网页可以在不同分辨率设…...

Maven相关问题:jna版本与ES冲突 + aop失效
文章目录 1、背景2、解决3、一点思考4、环境升级导致AOP失效5、okhttp Bean找不到6、总结 记录一些Maven依赖相关的思考 1、背景 做一个监控指标收集,用一下jna依赖: <dependency><groupId>net.java.dev.jna</groupId><artifact…...

Tomcat全方位监控实施方案指南
#作者:程宏斌 文章目录 一.二进制部署1、安装包信息2、新建配置文件2.1 配置config.yaml文件2.2 上传jar包 3、修改配置3.1 备份3.2 修改bin目录下的startup.sh文件 4、重启tomcat5、访问测试 二.docker部署1、临时方案1.1、重新启动容器1.2…...
开源PHP在线客服系统源码搭建教程
在当今数字化时代,在线客服系统已成为企业与客户沟通的重要桥梁。开源PHP客服系统因其灵活性、低成本和高可定制性而受到众多企业的青睐。本文将介绍几款优秀的开源PHP客服系统,并提供详细的搭建教程。 演示网站:gofly.v1kf.com 1.1 主流开源…...
centos7升级glibic-2.28
centos7升级glibic-2.28 最近使用trae连接服务器的时候,提示远程系统不兼容: Trae CN需要glibc 2.28或更高版本。检测到的版本: 2.17。下面是升级步骤。centos7默认的glibc不支持node v18及以上。 1、进入/home/download目录(没有download,则新建一个)…...
在Docker里面运行Docker
Docker 凭借其轻量级和可移植的容器,无疑改变了软件开发和部署的世界。但如果我告诉你 Docker 本身可以在另一个 Docker 容器中运行,你会怎么想?没错!这个概念通常被称为“Docker Inside Docker”或“DinD”,它为开发人员和系统管理员开辟了一个全新的可能性领域。在这篇博…...
设计模式复习小结
1.容易忘得设计原则 接口隔离:指接口中的功能太杂则可以拆分一下。防止实现类实现了接口后自动依赖了一些不需要的功能。不同功能拆分成不同的接口。 里氏代换:强调父类能出现的地方,子类一定能正常跑。 迪米特法则:又称最少知…...

To be or Not to be, That‘s a Token——论文阅读笔记——Beyond the 80/20 Rule和R2R
本周又在同一方向上刷到两篇文章,可以说,……同学们确实卷啊,要不卷卷开放场域的推理呢? 这两篇都在讲:如何巧妙的利用带有分支能力的token来提高推理性能或效率的。 第一篇叫 Beyond the 80/20 Rule: High-Entropy Mi…...
【基础】每天掌握一个Linux命令 - awk
目录 【基础】每天掌握一个Linux命令 - awk一、工具概述二、安装方式Ubuntu/Debian系统:CentOS/RHEL系统:macOS系统: 三、核心功能四、基础用法基本语法常用选项内置变量基本操作示例1. 打印文件所有内容2. 打印每行的第一个字段3. 指定分隔符…...

《UE5_C++多人TPS完整教程》学习笔记37 ——《P38 变量复制(Variable Replication)》
本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P38 变量复制(Variable Replication)》 的学习笔记,该系列教学视频为计算机工程师、程序员、游戏开发者、作家(Engineer, Programmer, Game Developer, Author)…...

AWS API Gateway配置日志
问题 访问API Gateway接口出现了403问题,具体报错如下: {"message":"Missing Authentication Token"}需要配置AWS API Gateway日志,看请求过程是什么样子的。 API Gateway 先找到API Gateway的的日志角色,…...

Towards Open World Object Detection概述(论文)
论文:https://arxiv.org/abs/2103.02603 代码:https://github.com/JosephKJ/OWOD Towards Open World Object Detection 迈向开放世界目标检测 Abstract 摘要 Humans have a natural instinct to identify unknown object instances in their environ…...

轻松备份和恢复 Android 系统 | 4 种解决方案
我们通常会在 Android 手机上存储大量重要的个人数据,包括照片、视频、联系人、信息等等。如果您不想丢失宝贵的数据,可以备份 Android 数据。当您需要访问和使用这些数据时,可以将其恢复到 Android 设备。如果您想了解 Android 备份和恢复&a…...

具备强大的数据处理和分析能力的智慧地产开源了
智慧地产视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。 AI是新形势下数…...
RK3588和FPGA桥片之间IO电平信号概率性不能通信原因
1.GPIO管脚配置问题 RK3588对IO进行配置的时候,如果配置为多功能复用,没有明确IO功能,可能引起信号接收不稳定, 需要在驱动中设备树中配置管脚为GPIO功能,确保没有功能复用的干扰。 2.上下拉电阻阻值设置不当 GPIO引脚…...

【iSAQB软件架构】软件架构中构建块的视图:黑箱、灰箱和白箱及其交互机制
在软件架构描述中,黑箱视图(Black-box)、灰箱视图(Gray-box)和白箱视图(White-box) 是不同抽象层级的构建模块表示方式,用于满足不同受众和设计阶段的需求。以下是基于ISAQB标准的清…...
.net jwt实现
.NET 中实现 JWT 认证:详细指南 在现代的 Web 应用开发中,安全认证是至关重要的一环。JSON Web Token(JWT)作为一种广泛使用的认证机制,为 API 提供了安全、便捷的身份验证方式。本文将详细介绍如何在 ASP.NET Core 项…...
LangChain【7】之工具创建和错误处理策略
文章目录 一 LangChain 自定义工具概述二创建自定义工具的三种方法2.1 方法一:tool 装饰器2.1.1 同步方法案例2.1.2 工具描述方式1:传参2.1.3 工具描述方式2:文档字符串 2.2 方法二:StructuredTool类2.2.1 StructuredTool创建自定…...

如何在电脑上轻松访问 iPhone 文件
我需要将 iPhone 下载文件夹中的文件传输到 Windows 11 电脑上。我该怎么做?我可以在 Windows 11 上访问 iPhone 下载吗? 由于 iOS 和 Windows 系统之间的差异,在 PC 上访问 iPhone 文件似乎颇具挑战性。然而,只要使用正确的工具…...
Eureka REST 相关接口
可供非 Java 应用程序使用的 Eureka REST 操作。 appID 是应用程序的名称,instanceID 是与实例关联的唯一标识符。在 AWS 云中,instanceID 是实例的实例 ID;在其他数据中心,它是实例的主机名。 对于 XML/JSON,HTTP 的…...

C语言字符数组输入输出方法大全(附带实例)
在 C语言中,字符数组是一种特殊的数组,用于存储和处理字符串。理解字符数组的输入和输出操作对于初学者来说至关重要,因为这是处理文本数据的基础。 字符数组的定义与初始化 在讨论输入输出之前,我们先来回顾一下字符数组的定义…...

短视频矩阵SaaS系统:开源部署与核心功能架构指南
一、系统架构概述 短视频矩阵系统是基于SaaS(软件即服务)模式的多平台内容管理解决方案,通过开源技术实现账号聚合、智能创作、跨平台分发及数据闭环。系统采用微服务架构,支持高并发场景下的弹性扩展。 二、核心功能模块开发逻辑…...
每日算法 -【Swift 算法】电话号码字母组合
🚀 LeetCode 字符串数字映射(Swift)——电话号码字母组合 在日常刷题或面试中,我们经常会遇到字符串 回溯组合的问题。这道经典题——电话号码的字母组合 就是典型代表。本文将带你用 Swift 实现这道题,思路清晰&…...
深入解析YUM与DNF:RPM包管理器的架构演进与功能对比
在Linux系统管理中,软件包管理器是连接用户与底层RPM(Red Hat Package Manager)包的核心工具。作为RPM生态的两大代表性工具,YUM(Yellowdog Updater Modified)与DNF(Dandified YUM)的…...
解决cocos 2dx/creator2.4在ios18下openURL无法调用的问题
由于ios18废弃了旧的openURL接口,我们需要修改CCApplication-ios.mm文件的Application::openURL方法: //修复openURL在ios18下无法调用的问题 bool Application::openURL(const std::string &url) {// NSString* msg [NSString stringWithCString:…...
精益数据分析(94/126):30/10/10用户参与法则与定价策略的科学制定
精益数据分析(九十四):30/10/10用户参与法则与定价策略的科学制定 在创业过程中,如何衡量用户参与度是否健康?又该如何制定科学的定价策略实现营收最大化?今天,我们将深入解析Union Square Ven…...

oss:上传图片到阿里云403 Forbidden
访问图片出现403Forbidden问题,我们可以直接登录oss账号,查看对应权限是否开通,是否存在跨域问题...
Windows系统中如何使用符号链接将.vscode等配置文件夹迁移到D盘(附 CMD PowerShell 双版本命令)
在日常开发和使用中,很多应用程序都会在 Windows 用户目录(如 C:\Users\你的用户名\)下创建一些以点开头的隐藏配置文件夹,例如: .vscode — Visual Studio Code 的设置和插件数据.cursor — Cursor 编辑器的缓存和设…...

4. 数据类型
4.1 数据类型分类 分类 数据类型 说明 数值类型 BIT(M) 位类型。M指定位数,默认值1,范围1 - 64 TINYINT [UNSIGNED] 带符号的范围 -128 ~ 127,无符号范围0 ~ 255,默认有符号 BOOL 使用0和1表示真和假 SMALLINT [UNSIGNED] 带符号是…...

MySQL基础(二)SQL语言、客户端工具
目录 三、SQL语言 3.1 概念 3.2 基本操作 四、客户端工具 三、SQL语言 3.1 概念 SQL(Structured Query Language)结构化查询语言。SQL用于对存储数据,更新,查询和管理关系型数据库的程序设计语言。 通常执行对数据库的增删改…...