位置: IT常识 - 正文

flex 的 三个参数:flex-grow、flex-shrink、flex-basis(flex的作用及设置)

编辑:rootadmin
flex 的 三个参数:flex-grow、flex-shrink、flex-basis 前言:

推荐整理分享flex 的 三个参数:flex-grow、flex-shrink、flex-basis(flex的作用及设置),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:flex的三个参数,flex3个属性详解,flex详解,flex详解,flex3个属性详解,flex的作用及设置,flex详解,flex的作用及设置,内容如对您有帮助,希望把文章链接给更多的朋友!

之前对于 flex 布局没有太深刻的理解,往往就只是给 父元素加上 display:flex  属性,在近期学习的过程中了解到 flex 属性是 flex-grow、flex-shrink、flex-basis 三个属性的缩写,来看下面这一个例题,理解之后就能大部分掌握 flex 的三个属性了

三个属性的顺序是 flex-grow、flex-shrink、flex-basis 

我的记忆方法是  G(干 )  S(傻 )  B ( 逼)   ,哈哈哈,这样是不是还挺好记的

但是下面文章讲解的顺序不按照这个来

 flex-basis

basis 的中文意思就是 基础、基准,该属性用来设置元素的宽度,通常情况下大家使用 width 设置宽度。但是如果元素上同时设置了 width 和 flex-basis ,那么 width 的值就会被 flex-basis 覆盖掉。

<style> .father{ display: flex; width:400px; height:200px; } .box{ width:200px; height:100px; flex-basis:300px; background:blue; } </style><body><div class="father"> <div class="box"></div>

 可以看到给父元素添加 display:flex 属性后让其变成 flex 布局 ,子元素的 width 设置成 200 px ,flex-basis 设置成 300 px,最终显示为 300px ,width 的值就被 flex-basis 覆盖掉,这个属性比较好理解

 flex-grow

该属性用来设置当父元素的宽度大于所有子元素的宽度的和时(即父元素会有剩余空间),子元素如何分配父元素的剩余空间。 flex-grow 的默认值为 0,意思是该元素不索取父元素的剩余空间,如果值大于0,表示索取。值越大,索取的越厉害。

假如设置父元素 400px,子元素 A 为100px,子元素 B 为 200px.则剩余空间为 100px

例子一:

A的 flex-grow 为 0,B的 flex-grow 为 0(即A、B不设置该属性)

则A、B的实际宽度为他们本身的宽度,即A的实际宽度为100px  ; B的实际宽度为200px

例子二:

A的 flex-grow 为1,B的 flex-grow为0(即不设置该属性)

则A的实际宽度为 100px + 100px =200px    ;  B的实际宽度为 200px + 0 = 200px

例子三:

A的 flex-grow 为 1,B的 flex-grow 为 2

则 A 的实际宽度为 100px + 100px * 1/3 =  400/3 px  , B的实际宽度为 200px + 100px * 2/3 = 800/3 px 

上面的 总系数为 1 + 2 = 3 ,然后按照 各元素的 flex-grow 的属性值进行分配 A 1/3   B 2/3

 flex-shrink 

该属性用来设置子元素的 缩小比例,当父元素的宽度小于所有子元素的宽度的和时(即子元素会超出父元素),子元素如何缩小自己的宽度的。 flex-shrink 的默认值为 1,当父元素的宽度小于所有子元素的宽度的和时,子元素的宽度会减小。值越大,减小的越厉害。如果值为 0,表示不减小。

假如设置父元素 400px,子元素A为 200px,子元素B为 300px.则超出空间为 100px

flex 的 三个参数:flex-grow、flex-shrink、flex-basis(flex的作用及设置)

例子一:

设置A的 flex-shrink 为 0,B的 flex-shrink 为 0

则A,B都不减小宽度,A、B的实际宽度为他们本身的宽度,即A的实际宽度为 200px  ; B的实际宽度为 300px 

例子二:

A的 flex-shrink 为 0,B的 flex-shrink 为 1,则A不减小宽度,B减小

则A的实际宽度为他本身的宽度= 200px   , B的实际宽度为 300px - 100px(超出的宽度)= 200px

例子三:

如果A,B都减小宽度,A设置 flex-shirk 为 3,B设置 flex-shirk 为 2。则最终 A 的大小为 自身宽度 (200px) - A减小的宽度(100px * (200px * 3 / (200px * 3 + 300px * 2))) = 150px

最终 B 的大小为 自身宽度 (300px)- B减小的宽度 (100px * (300px * 2/(200px* 3 + 300px* 2))) = 250px

 题目讲解

看到这里,相信上面那一个例题大家应该会解了,下面我简单说一下

 因为 flex的三个属性依次为  flex-grow、flex-shrink、flex-basis 

根据 flex-basis 计算出,这里 两个子元素的实际宽度 大于 父元素

所以 第一个 flex-grow 不用管,只看第二个 缩小的属性 flex-shrink

简要步骤如下(为了偷懒省略了单位 px, 问题不大)

 (1)计算超出父盒子的宽度:200 + 50 - 200 = 50  (2).left需要减少:(50*2) / (50*2+200*1) * 50 = 50/3    .right需要减少:(200*1)  / (50*2+200*1) * 50 = 100/3  (3)最终 left  宽度:50 - 50/3 = 100/3      最终 right 宽度:200 - 100/3 = 500/3  (4) left 和 right 比例: 1:5          故选择 B

 总结

 flex-basis:定义元素的基础宽度

flex-grow:定义子元素的放大比例

默认为0,即 即使存在剩余空间,也不会放大所有项目的flex-grow为1:等分剩余空间(自动放大占位)

flex-shrink:定义子元素的缩小比例;

默认为1,即 如果空间不足,该项目将缩小;所有项目的 flex-shrink 为1:当空间不足时,缩小的比例相同;flex-shrink 为 0:空间不足时,该项目不会缩小; 几个例子flex: none

flex 取值为 none,则三个属性依次为 0 0 auto,(不放大也不缩小)。如下是等同的

.item {flex: none;}.item { flex-grow: 0; flex-shrink: 0; flex-basis: auto;}flex:auto

当 flex取值为 auto,则三个属性依次为 1 1 auto(放大且缩小)。如下是等同的:

.item {flex: auto;}.item { flex-grow: 1; flex-shrink: 1; flex-basis: auto;}默认情况下 

flex 属性的默认值为:0 1 auto (不放大会缩小)

注意:

flex:1  不等于  flex: 1 1 auto ,flex:auto 才是  flex: 1 1 auto

flex:1 等同于下面的写法 ( 放大且缩小并等分所有空间),但 flex:auto 和它的区别就是等分剩余空间 。

flex:1 等同于下面flex-grow: 1flex-shrink: 1flex-basic: 0%

flex-basic 只要是 (number类型 + 单位), 实现的效果都是所有空间等分

文章如有错误,恳请大家提出问题,本人不胜感激 。 不懂的地方可以评论,我都会 一 一回复

文章对大家有帮助的话,希望大家能动手点赞鼓励,大家未来一起努力 长路漫漫,道阻且长

本文链接地址:https://www.jiuchutong.com/zhishi/299290.html 转载请保留说明!

上一篇:出道即封神的ChatGPT,现在怎么样了?(真正的出道仙谁来封)

下一篇:机器学习——BP神经网络详细介绍及案例Python代码实现

  • 希沃白板课件怎么下载到U盘(希沃白板课件怎么转化成wps)

    希沃白板课件怎么下载到U盘(希沃白板课件怎么转化成wps)

  • 屏幕录制是干嘛用的(屏幕录制干什么用)

    屏幕录制是干嘛用的(屏幕录制干什么用)

  • iPhone12如何进行双击截屏(iphone 12步骤)

    iPhone12如何进行双击截屏(iphone 12步骤)

  • 小米6x摄像头模糊(小米6x 摄像头)

    小米6x摄像头模糊(小米6x 摄像头)

  • realtek是什么软件

    realtek是什么软件

  • 快手作品不适宜公开是怎么回事(快手作品不适宜公开有没有办法可以解决)

    快手作品不适宜公开是怎么回事(快手作品不适宜公开有没有办法可以解决)

  • 国产屏幕和原装区别(国产屏幕和原装屏幕有什么区别苹果)

    国产屏幕和原装区别(国产屏幕和原装屏幕有什么区别苹果)

  • b站如何屏蔽礼物特效(bilibili怎么屏蔽礼物)

    b站如何屏蔽礼物特效(bilibili怎么屏蔽礼物)

  • 小天才如何下载微信(小天才如何下载抖音)

    小天才如何下载微信(小天才如何下载抖音)

  • 刷宝卸载后里面的信息注销吗(下载了刷宝,为什么打不开)

    刷宝卸载后里面的信息注销吗(下载了刷宝,为什么打不开)

  • 3800x配什么显卡(3800x配什么显卡合适)

    3800x配什么显卡(3800x配什么显卡合适)

  • i310110u相当于i5几代(i310110u相当于i9几代)

    i310110u相当于i5几代(i310110u相当于i9几代)

  • 苹果看视频怎么横屏(苹果看视频怎么调倍速)

    苹果看视频怎么横屏(苹果看视频怎么调倍速)

  • 手机重装系统是不是所有的东西都没了(手机重装系统安全吗)

    手机重装系统是不是所有的东西都没了(手机重装系统安全吗)

  • 小程序一直加载打不开(小程序一直加载中是什么意思?)

    小程序一直加载打不开(小程序一直加载中是什么意思?)

  • 港版a1661是全网通吗(港版a1865)

    港版a1661是全网通吗(港版a1865)

  • 放大镜是凸透镜吗(放大镜是凸透镜凸度越大放大的倍数也越大)

    放大镜是凸透镜吗(放大镜是凸透镜凸度越大放大的倍数也越大)

  • 程序设计语言处理系统是应用软件吗(程序设计语言处理程序有哪些?它们的作用是什么?)

    程序设计语言处理系统是应用软件吗(程序设计语言处理程序有哪些?它们的作用是什么?)

  • 小米曲面屏手机有哪些(小米曲面屏手机贴什么膜比较好)

    小米曲面屏手机有哪些(小米曲面屏手机贴什么膜比较好)

  • 越南手机号可以注册微信吗(越南手机号可以注册抖音吗)

    越南手机号可以注册微信吗(越南手机号可以注册抖音吗)

  • ps字体怎么恢复出厂设置(ps字体样式怎么恢复成原来的)

    ps字体怎么恢复出厂设置(ps字体样式怎么恢复成原来的)

  • idc运维的基本工作(idc运维工程师是做什么的)

    idc运维的基本工作(idc运维工程师是做什么的)

  • surface1724是什么型号(surface1824是什么型号)

    surface1724是什么型号(surface1824是什么型号)

  • 怎去掉华为屏幕上光圈(怎去掉华为屏幕上的圆点)

    怎去掉华为屏幕上光圈(怎去掉华为屏幕上的圆点)

  • 苹果xr有256g内存的吗(苹果xr有没有256的内存)

    苹果xr有256g内存的吗(苹果xr有没有256的内存)

  • iphone11pro是刘海屏吗(苹果11pro是刘海屏吗)

    iphone11pro是刘海屏吗(苹果11pro是刘海屏吗)

  • 电脑老是弹出热点新闻(电脑总是弹出热点新闻怎么解决)

    电脑老是弹出热点新闻(电脑总是弹出热点新闻怎么解决)

  • 无线网卡搜索不到无线网络(无线网卡搜不到任何网络)

    无线网卡搜索不到无线网络(无线网卡搜不到任何网络)

  • 生活中的科学小常识(生活中的科学小妙招)

    生活中的科学小常识(生活中的科学小妙招)

  • 公文格式页边距(正规公文格式页边距)

    公文格式页边距(正规公文格式页边距)

  • Win10笔记本检测不到耳机应该如何解决(win10检测系统)

    Win10笔记本检测不到耳机应该如何解决(win10检测系统)

  • Windows7如何删除硬盘分区?(windows7如何删除软件)

    Windows7如何删除硬盘分区?(windows7如何删除软件)

  • 医疗器械商贸企业成本核酸
  • 固定资产投资会计处理
  • 模具费入什么会计科目
  • 折旧额对应纳税所得额的影响
  • 应收票据的会计分录例题
  • 电子承兑汇票如何拆小
  • 普通发票扣税
  • 银行汇票应计入什么科目
  • 分公司注销存货处理
  • 委托代销收取手续费账务处理
  • 税负率是税率吗
  • 所得税季报中的利润总额包括哪些
  • 国税能代开什么费用的发票?
  • 发票对方作废了,客户还可以认证么
  • 代驾公司增值税怎么交
  • 金税盘要钱不
  • 某公司为了更好的开展业务
  • 红冲发票地址不一样可以吗
  • 盘亏固定资产会计处理
  • 小规模纳税人如何计算增值税
  • 纳税人申领发票流程
  • 怎么让别人无法访问我的qq空间
  • 流动资产和非流动资产占比多少合适
  • rsrcmtr.exe - rsrcmtr是什么进程 有什么用
  • 个人所得税应该计入什么科目
  • 企业职工福利费的扣除标准是多少?
  • memory tester
  • vue前端页面设计
  • 30个极致实用的东西
  • PHP:imagecreatefromgd2()的用法_GD库图像处理函数
  • zendframework3
  • web前端入门教程
  • php页面跳转方法
  • 路径规划的基本流程和方法
  • FPN细节剖析以及pytorch代码实现
  • wordpress图片模板
  • 财务核算科目核算流程图
  • 铁路运输企业受托代征 印花税
  • 织梦官方网站
  • c语言中数组怎么用
  • 金融债券利息收入免企业所得税吗
  • 月入一万怎么样
  • 合营企业长期股权投资
  • 小规模纳税人防水工程专用发票税率是多少
  • 生产成本帐
  • 核定征收和查账征收可以自己选择吗
  • 软件属于哪种无形资产
  • 增值税申报抵扣联数据没有
  • 一般纳税人建筑劳务税率
  • 核定征收怎么收
  • 其它综合收益包括
  • 营业外支出包括
  • 股权变更需要做账吗
  • 物流运输车类型
  • 根据银行回单做凭证
  • 宾馆纳税怎么算的
  • 企业是否必须建立巡察制度
  • 如何屏蔽网络?
  • 电脑删除ie后怎么恢复
  • win7旗舰版和家庭版哪个对电脑要求低
  • windows8怎么设置
  • msiexec.exe是什么进程介绍
  • ubuntu系统安装程序
  • window7iis配置步骤
  • cocos2dx4.0教程
  • 所见即所得出自哪里
  • unity3d 游戏开发 消息通信
  • vue.js有哪些组件
  • jqgrid api中文手册
  • unity sp
  • .net 迭代器
  • unity uma
  • border-radius在Android下的几个BUG
  • 如何使用定向流量
  • listview subitems
  • java中线程池原理
  • 备份系统apk
  • jquery的form方法
  • 陕西省税务局电子税务局官网
  • 江苏省国税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设