目录

flex-box和flex-item

主轴和副轴

​编辑

flex-box的属性

flex-direction

flex-wrap

flex-flow

justify-content

​编辑​align-items

align-content

flex-item的属性

flex-basis

flex-grow

flex-shrink

flex


flex-box和flex-item

当把一个块级元素的display设置为flex时,这个块级元素就成为了flex-box,flex-box也称为flex-container、盒子、容器等,

flex-box内部的所有子块级元素都是flex-item,flex-item也称为项目等

主轴和副轴

默认主轴是水平轴,副轴是垂直轴,副轴也叫交叉轴,

轴可以影响item的排列

原始代码:

    <div class="flex-box"><h2>test</h2><div class="flex-item">1</div><div class="flex-item">2</div><div class="flex-item">3</div><div class="flex-item">4</div><div class="flex-item">5</div><div class="flex-item">6</div><div class="flex-item">7</div><div class="flex-item">8</div><div class="flex-item">9</div><div class="flex-item">10</div><div class="flex-item">11</div><div class="flex-item">12</div><div class="flex-item">13</div><div class="flex-item">14</div><div class="flex-item">15</div></div><style>.flex-box{background-color: aqua;width: 1000px;height: 200px;display: flex;}.flex-item{background-color: blue;width: 100px;height: 100px;border: 1px solid gray;font-size: 50px;}</style>

初始设置了box的width是1000px,内部每个item的width是100px,但是15个item的width超过box的width了,item的width自动缩小了,为什么会导致这种现象,与flex-grow、flex-shrink、flex-basis的默认值有关,默认值为0 1 auto,元素不会自动扩展,但是会按比例收缩。

flex-box的属性

flex-direction

flex-direction定义了主轴的方向,内部的item在主轴方向上会按设定的方向排列。

flex-direction:row 

flex-direction:row-reverse

flex-direction:column

flex-direction:column-reverse

flex-direction:initial

默认值,为row

flex-wrap

指定 flex 元素单行显示还是多行显示。

flex-wrap:nowarp

不换行。flex 的元素被摆放到到一行,这可能导致 flex 容器溢出,为默认值。

flex-wrap:warp

换行。flex 元素 被打断到多个行中。

flex-wrap:warp-reverse

换行、倒序。

flex-flow

是 flex-direction 和 flex-wrap 的简写。

比如flex-flow:column-reverse wrap

justify-content

定义浏览器如何沿着弹性容器的主轴分配内容元素之间和周围的空间。

这里为了展示出效果,把item数降到六个了。

justify-content:start

从行首开始排列。每行第一个元素与行首对齐,同时所有后续的元素与前一个对齐。

justify-content:end

从行尾开始排列。每行最后一个元素与行尾对齐,同时所有前面的元素与后一个对齐。

justify-content:flex-start

和start效果是一样的。flex-start只用于flex容器。

justify-content:flex-end

元素紧密地排列在弹性容器的主轴结束侧。仅应用于弹性布局的元素。对于不是弹性容器里的元素,此值将被视为end。

和end效果是一样的。

justify-content:center

伸缩元素向每行中点排列。每行第一个元素到行首的距离将与每行最后一个元素到行尾的距离相同。

justify-content:left

左对齐。

justify-content:right

右对齐。

justify-content:space-between

在每行上均匀分配弹性元素。相邻元素间距离相同。每行第一个元素与行首对齐,每行最后一个元素与行尾对齐。

justify-content:space-around

在每行上均匀分配弹性元素。相邻元素间距离相同。每行第一个元素到行首的距离和每行最后一个元素到行尾的距离将会是相邻元素之间距离的一半。

justify-content:space-evenly

flex 项都沿着主轴均匀分布在指定的对齐容器中。相邻 flex 项之间的间距,主轴起始位置到第一个 flex 项的间距,主轴结束位置到最后一个 flex 项的间距,都完全一样。

justify-content:stretch

虽然弹性盒子支持strech属性,但将其应用于弹性盒子时,由于拉伸是由flex属性控制的,所以stretch的行为与start相同。

​align-items

控制子元素在副轴上的对齐。

align-items:flex-start

将item与 flex 容器的主轴起点或副轴起点对齐。

align-items:flex-end

将item与 flex 容器的主轴末端或副轴末端对齐。

align-items:center

flex 元素的外边距框在交叉轴上居中对齐。如果元素的交叉轴尺寸大于 flex 容器,它将在两个方向上等距溢出。

align-items:start

将元素与容器的主轴起点或交叉轴起点对齐。和flex-start一样。

align-items:end

将元素与容器的主轴末端或交叉轴末端对齐。和flex-end一样。

align-items:stretch

如果(多个)元素的组合大小小于容器的大小,其中自动调整大小的元素将等量增大,以填满容器,同时这些元素仍然保持其宽高比例的约束。

但单独设置stretch不会生效。

总的来说:

align-content

当flex-box的flex-wrap为wrap时生效。

align-content:start

所有行从容器的起始边缘开始填充。

align-content:end

所有行从容器的结束边缘开始填充。

align-content:flex-start

所有行从垂直轴起点开始填充。第一行的垂直轴起点边和容器的垂直轴起点边对齐。接下来的每一行紧跟前一行。

align-content:flex-end

所有行从垂直轴末尾开始填充。最后一行的垂直轴终点和容器的垂直轴终点对齐。同时所有后续行与前一个对齐。

align-content:center

所有行朝向容器的中心填充。每行互相紧挨,相对于容器居中对齐。容器的垂直轴起点边和第一行的距离相等于容器的垂直轴终点边和最后一行的距离。

align-content:normal

这些项按默认位置填充,就像没有设置对齐内容值一样。

总的来说:

flex-item的属性

flex-basis

指定了 flex 元素在主轴方向上的初始大小。

当一个元素同时被设置了flex-basis (除值为auto外) 和width(或者在flex-direction:column情况下设置了height) ,flex-basis具有更高的优先级。

默认值为auto。

flex-basis:数字

设置px:设置的是对应item的width。

设置百分比:设置的是对应item的width。百分比是相对于父元素的width。

flex-basis:auto:width等于item本身的width。

flex-grow

用来规定弹性元素在有多余空间时的扩展比例。

是一个无单位的数值,默认值为0,这意味着元素不会主动扩展以填满多余空间。

若设置为大于0的值,元素就会按比例扩展。例如,有两个元素,一个flex-grow为1,另一个为2,那么后者扩展的空间会是前者的两倍。

flex-shrink

规定弹性元素在空间不足时的收缩比例。同样是无单位的数值,默认值为1,表示元素会按照比例收缩。若设置为0,元素就不会收缩。

flex

flex-grow flex-shrink flex-basis的简写形式。

flex:initial

元素会根据自身宽高设置尺寸。它会缩短自身以适应 flex 容器,但不会伸长并吸收 flex 容器中的额外自由空间来适应 flex 容器。相当于将属性设置为flex:0 1 auto

flex:auto

元素会根据自身的宽度与高度来确定尺寸,但是会伸长并吸收 flex 容器中额外的自由空间,也会缩短自身来适应 flex 容器。这相当于将属性设置为flex:1 1 auto

flex:none

元素会根据自身宽高来设置尺寸。它是完全非弹性的:既不会缩短,也不会伸长来适应 flex 容器。相当于将属性设置为flex:0 0 auto

可以使用一个,两个或三个值来指定flex属性。

单值语法:

一个有效值:

若该值相当于有效flex-grow,该值相当于设置flex-grow,此时简写会扩展为flex:flex-grow 1 0. 

若该值相当于有效flex-basis,该值相当于设置flex-basis,此时简写会扩展为flex:1 1 flex-basis

两个有效值:

第一个值必须是flex-grow有效值。

第二个值若为flex-shrink有效值,此时简写会扩展为flex:flex-grow flex-shrink 0 

第二个值若为flex-basis有效值,此时简写会扩展为flex:flex-grow 1 flex-basis

个有效值: 

依次对应flex-grow、flex-shrink、flex-basis。

flex-grow值的设置:

负值无效。省略时默认值为 1。 (初始值为 0)

flex-shrink值的设置:

负值无效。省略时默认值为1。 (初始值为 1)

flex-basis值的设置:

若值为0,则必须加上单位,以免被视作伸缩性。省略时默认值为 0。(初始值为 auto)

auto相当于按照元素本身的大小来。

0表示按元素的内容撑开来,设置的width无效。

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

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

相关文章

【JMeter】执行系统命令

步骤如下&#xff1a; 添加JSP233 Sampler&#xff1a;右击线程组>添加>取样器>JSR223 Sampler2.填写脚本&#xff0c;执行后查看日志。res "ipconfig".execute().text log.info(res)res "python -c \"print(11)\"".execute().text l…

AI Agent开发学习系列 - langchain之memory(1):内存中的短时记忆

内存中的短时记忆&#xff0c;在 LangChain 中通常指 ConversationBufferMemory 这类“对话缓冲记忆”工具。它的作用是&#xff1a;在内存中保存最近的对话历史&#xff0c;让大模型能理解上下文&#xff0c;实现连续对话。 对话缓冲记忆”工具 主要特点 只保留最近的对话内容…

uniapp实现微信小程序端图片保存到相册

效果图展示 安装插件海报画板导入到项目里面&#xff0c;在页面直接使用 <template><view><button click"saveToAlbum" class"save-button">保存到相册</button><image :src"path" mode"widthFix" v-if&qu…

Java生产带文字、带边框的二维码

Java 生成带文字、带边框的二维码1、Java 生成带文字的二维码1.1、导入jar包1.2、普通单一的二维码1.2.1、代码示例1.2.2、效果1.3、带文字的二维码1.&#xff13;.&#xff11;、代码示例1.3.2、效果2、带边框的二维码2.1、代码示例2.2、带边框的二维码效果 1、Java 生成带文字…

ARM单片机启动流程(三)(栈空间综合理解及相关实际应用)

文章目录1、引出栈空间问题2、解决问题2.1、RAM空间2.2、RAM空间具体分布2.3、关于栈空间的使用2.4、栈溢出2.5、变量的消亡2.6、回到关键字static2.7、合法性的判断1、引出栈空间问题 从static关键字引出该部分内容。 为什么能从static引出来&#xff1f; 在使用该关键字的…

【RK3568+PG2L50H开发板实验例程】FPGA部分 | 键控LED实验

本原创文章由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处&#xff08;www.meyesemi.com) 1.实验简介 实验目的&#xff1a; 从创建工程到编写代码&#xff0c;完成引脚约束&#xff0c;最后生成 bit 流下载到…

【Python练习】039. 编写一个函数,反转一个单链表

039. 编写一个函数,反转一个单链表 039. 编写一个函数,反转一个单链表方法 1:迭代实现运行结果代码解释方法 2:递归实现运行结果代码解释选择方法迭代法与递归法的区别039. 编写一个函数,反转一个单链表 在 Python 中,可以通过迭代或递归的方式反转一个单链表。 方法 1…

BERT代码简单笔记

参考视频&#xff1a;BERT代码(源码)从零解读【Pytorch-手把手教你从零实现一个BERT源码模型】_哔哩哔哩_bilibili 一、BertTokenizer BertTokenizer 是基于 WordPiece 算法的 BERT 分词器&#xff0c;继承自 PreTrainedTokenizer。 继承的PretrainedTokenizer&#xff0c;具…

PID控制算法理论学习基础——单级PID控制

这是一篇我在学习PID控制算法的过程中的学习记录。在一开始学习PID的时候&#xff0c;我也看了市面上许多的资料&#xff0c;好的资料固然有&#xff0c;但是更多的是不知所云。&#xff08;有的是写的太过深奥&#xff0c;有的则是照搬挪用&#xff0c;对原理则一问三不知&…

【Elasticsearch】function_score与rescore

它们俩都是用来“**干涉评分**”的&#xff0c;但**工作阶段不同、性能开销不同、能做的事也不同**。一句话总结&#xff1a;> **function_score** 在 **第一次算分** 时就动手脚&#xff1b; > **rescore** 在 **拿到 Top-N 结果后** 再“重新打分”。下面把“能干嘛”…

无广告纯净体验 WPS2016 精简版:移除联网模块 + 非核心组件,古董电脑也能跑

各位办公小能手们&#xff01;今天给你们介绍一款超神的办公软件——WPS2016精简版&#xff01;它有多小呢&#xff1f;才33MB&#xff0c;简直就是软件界的小不点儿&#xff01;别看它个头小&#xff0c;功能可一点儿都不含糊&#xff0c;文字、表格、演示这三大功能它全都有。…

《PyWin32:Python与Windows的桥梁,解锁系统自动化新姿势》

什么是 PyWin32在 Windows 平台的 Python 开发领域中&#xff0c;PyWin32 是一个举足轻重的库&#xff0c;它为 Python 开发者打开了一扇直接通往 Windows 操作系统底层功能的大门。简单来说&#xff0c;PyWin32 是用于 Python 访问 Windows API&#xff08;Application Progra…

vite如何生成gzip,并在服务器上如何设置开启

1. 安装插件npm install vite-plugin-compression -D2. 在 vite.config.ts 中配置TypeScriptimport { defineConfig } from vite import compression from vite-plugin-compressionexport default defineConfig({plugins: [compression({algorithm: gzip,ext: .gz,threshold: 1…

1068万预算!中国足协大模型项目招标,用AI技术驱动足球革命

中国足协启动国际足联“前进计划”下的大数据模型项目&#xff0c;预算1068万元。该项目将建立足球大数据分析平台&#xff0c;利用AI技术为国家队、青少年足球、业余球员及教练员裁判员提供精准数据分析服务&#xff0c;旨在通过科技手段提升中国足球竞技水平。 中国足球迎来数…

AI产品经理面试宝典第12天:AI产品经理的思维与转型路径面试题与答法

多样化思维:如何跳出单一框架解题? 面试官:AI产品常面临复杂场景,请举例说明你如何运用多样化思维解决问题? 你的回答:我会从三个维度展开:多角度拆解需求本质,多层级融合思维模式,多变量寻找最优解。比如设计儿童教育机器人时,不仅考虑功能实现(技术层),还融入情…

vscode.window对象讲解

一、vscode.window 核心架构图 #mermaid-svg-fyCxPz1vVhkf96nE {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-fyCxPz1vVhkf96nE .error-icon{fill:#552222;}#mermaid-svg-fyCxPz1vVhkf96nE .error-text{fill:#5522…

为什么一个 @Transactional 注解就能开启事务?揭秘 Spring AOP 的底层魔法

你是否也曾深陷在各种“额外”逻辑的泥潭&#xff0c;为了给一个核心业务方法增加日志、权限校验或缓存&#xff0c;而不得不将这些非核心代码硬塞进业务类中&#xff0c;导致代码臃肿、职责不清&#xff1f;是时候用代理设计模式 (Proxy Design Pattern) 来解脱了&#xff01;…

《Spring 中上下文传递的那些事儿》Part 8:构建统一上下文框架设计与实现(实战篇)

&#x1f4dd; Part 8&#xff1a;构建统一上下文框架设计与实现&#xff08;实战篇&#xff09; 在实际项目中&#xff0c;我们往往需要处理多种上下文来源&#xff0c;例如&#xff1a; Web 请求上下文&#xff08;RequestContextHolder&#xff09;日志追踪上下文&#xf…

配置驱动开发:初探零代码构建嵌入式软件配置工具

前言在嵌入式软件开发中&#xff0c;硬件初始化与寄存器配置长期依赖人工编写重复代码。以STM32外设初始化为例&#xff0c;开发者需手动完成时钟使能、引脚模式设置、参数配置等步骤&#xff0c;不仅耗时易错&#xff08;如位掩码写反、模式枚举值混淆&#xff09;&#xff0c…

Elasticsearch混合搜索深度解析(下):执行机制与完整流程

引言 在上篇中&#xff0c;我们发现了KNN结果通过SubSearch机制被保留的关键事实。本篇将继续深入分析混合搜索的执行机制&#xff0c;揭示完整的处理流程&#xff0c;并解答之前的所有疑惑。 深入源码分析 1. SubSearch的执行机制 1.1 KnnScoreDocQueryBuilder的实现 KNN结果被…