前端flex、grid布局

news2025/6/7 7:26:20

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网格布局教程

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Maven相关问题:jna版本与ES冲突 + aop失效

文章目录 1、背景2、解决3、一点思考4、环境升级导致AOP失效5、okhttp Bean找不到6、总结 记录一些Maven依赖相关的思考 1、背景 做一个监控指标收集&#xff0c;用一下jna依赖&#xff1a; <dependency><groupId>net.java.dev.jna</groupId><artifact…

Tomcat全方位监控实施方案指南

#作者&#xff1a;程宏斌 文章目录 一&#xff0e;二进制部署1、安装包信息2、新建配置文件2.1 配置config.yaml文件2.2 上传jar包 3、修改配置3.1 备份3.2 修改bin目录下的startup.sh文件 4、重启tomcat5、访问测试 二&#xff0e;docker部署1、临时方案1.1、重新启动容器1.2…

To be or Not to be, That‘s a Token——论文阅读笔记——Beyond the 80/20 Rule和R2R

本周又在同一方向上刷到两篇文章&#xff0c;可以说&#xff0c;……同学们确实卷啊&#xff0c;要不卷卷开放场域的推理呢&#xff1f; 这两篇都在讲&#xff1a;如何巧妙的利用带有分支能力的token来提高推理性能或效率的。 第一篇叫 Beyond the 80/20 Rule: High-Entropy Mi…

《UE5_C++多人TPS完整教程》学习笔记37 ——《P38 变量复制(Variable Replication)》

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

AWS API Gateway配置日志

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

Towards Open World Object Detection概述(论文)

论文&#xff1a;https://arxiv.org/abs/2103.02603 代码&#xff1a;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 手机上存储大量重要的个人数据&#xff0c;包括照片、视频、联系人、信息等等。如果您不想丢失宝贵的数据&#xff0c;可以备份 Android 数据。当您需要访问和使用这些数据时&#xff0c;可以将其恢复到 Android 设备。如果您想了解 Android 备份和恢复&a…

具备强大的数据处理和分析能力的智慧地产开源了

智慧地产视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。 AI是新形势下数…

【iSAQB软件架构】软件架构中构建块的视图:黑箱、灰箱和白箱及其交互机制

在软件架构描述中&#xff0c;黑箱视图&#xff08;Black-box&#xff09;、灰箱视图&#xff08;Gray-box&#xff09;和白箱视图&#xff08;White-box&#xff09; 是不同抽象层级的构建模块表示方式&#xff0c;用于满足不同受众和设计阶段的需求。以下是基于ISAQB标准的清…

如何在电脑上轻松访问 iPhone 文件

我需要将 iPhone 下载文件夹中的文件传输到 Windows 11 电脑上。我该怎么做&#xff1f;我可以在 Windows 11 上访问 iPhone 下载吗&#xff1f; 由于 iOS 和 Windows 系统之间的差异&#xff0c;在 PC 上访问 iPhone 文件似乎颇具挑战性。然而&#xff0c;只要使用正确的工具…

C语言字符数组输入输出方法大全(附带实例)

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

短视频矩阵SaaS系统:开源部署与核心功能架构指南

一、系统架构概述 短视频矩阵系统是基于SaaS&#xff08;软件即服务&#xff09;模式的多平台内容管理解决方案&#xff0c;通过开源技术实现账号聚合、智能创作、跨平台分发及数据闭环。系统采用微服务架构&#xff0c;支持高并发场景下的弹性扩展。 二、核心功能模块开发逻辑…

oss:上传图片到阿里云403 Forbidden

访问图片出现403Forbidden问题&#xff0c;我们可以直接登录oss账号&#xff0c;查看对应权限是否开通&#xff0c;是否存在跨域问题

4. 数据类型

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

MySQL基础(二)SQL语言、客户端工具

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

CppCon 2015 学习:C++ in the audio industry

实时编程&#xff08;real-time programming&#xff09;&#xff1a;音频处理对延迟极度敏感&#xff0c;要求代码必须非常高效且稳定。无锁线程同步&#xff08;lock-free thread synchronization&#xff09;&#xff1a;避免阻塞&#xff0c;提高性能&#xff0c;尤其是在多…

C++算法-动态规划2

第 4 题 字符串分割 (Word Break) 难度: Medium备注&#xff1a;出自 leetcode题目描述 Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words. For example, given s "l…

软信天成:数据驱动型背后的人工智能,基于机器学习的数据管理

在数字化转型浪潮中&#xff0c;当代企业如同逆水行舟&#xff0c;不进则退。无数企业希望通过数字化转型捕获全新的市场机遇&#xff0c;改善财政状况&#xff0c;在未来市场竞争中占据一席之地。要想获得成功的数字化转型&#xff0c;关键因素在于具备可靠、及时的数据用以支…

MySQL提升

事务 事务&#xff1a;在多个操作合在一起视为一个整体。要么就不做、要么就做完。 事务应该满足ACID A : 原子性。不可分割。C : 一致性。追求的目标&#xff0c;在开始到结束没有发生预定外的情况。I : 隔离性。不同的事务是独立的。D : 持久性。系统崩溃&#xff0c;数据依然…

go语言的锁

本篇文章主要讲锁&#xff0c;主要会涉及go的sync.Mutex和sync.RWMutex。 一.锁的概念和发展 1.1 锁的概念 所谓的加锁和解锁其实就是指一个数据是否被占用了&#xff0c;通过Mutex内的一个状态来表示。 例如&#xff0c;取 0 表示未加锁&#xff0c;1 表示已加锁&#xff…