位置: 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代码实现

  • word文字有底色怎么去掉(word文字有灰色)

    word文字有底色怎么去掉(word文字有灰色)

  • WiFi探针是什么(wifi探针的工作原理)

    WiFi探针是什么(wifi探针的工作原理)

  • opporeno4手机一共有几个摄像头(opporeno4手机有什么新功能)

    opporeno4手机一共有几个摄像头(opporeno4手机有什么新功能)

  • 天猫和淘宝是一个账号吗(天猫和淘宝是一个平台吗)

    天猫和淘宝是一个账号吗(天猫和淘宝是一个平台吗)

  • 电脑c盘的怎么移动到其他盘(电脑c盘的怎么清理)

    电脑c盘的怎么移动到其他盘(电脑c盘的怎么清理)

  • 听歌识曲识别不出来怎么办(听歌识曲识别不到怎么办)

    听歌识曲识别不出来怎么办(听歌识曲识别不到怎么办)

  • word在文本下加红色下划线怎么弄(word在文本下加了红色下划线)

    word在文本下加红色下划线怎么弄(word在文本下加了红色下划线)

  • 天翼网关2.0是千兆猫吗(天翼网关2.0千兆口一直闪)

    天翼网关2.0是千兆猫吗(天翼网关2.0千兆口一直闪)

  • 摄像头3.6mm和6mm的区别(摄像头3.6mm和6mm有什么区别)

    摄像头3.6mm和6mm的区别(摄像头3.6mm和6mm有什么区别)

  • 微信朋友圈会限流吗(微信朋友圈会限制发朋友圈吗)

    微信朋友圈会限流吗(微信朋友圈会限制发朋友圈吗)

  • 淘宝系统默认好评计分吗(淘宝系统默认好评和五星好评有什么区别)

    淘宝系统默认好评计分吗(淘宝系统默认好评和五星好评有什么区别)

  • QQ怎么看群号(怎么看qq群群号)

    QQ怎么看群号(怎么看qq群群号)

  • 淘宝退款时间怎么规定的(淘宝退款怎么改退款路径)

    淘宝退款时间怎么规定的(淘宝退款怎么改退款路径)

  • windowsxp的桌面是指

    windowsxp的桌面是指

  • 手机电量低就卡怎么办(手机耗电量太快怎么解决)

    手机电量低就卡怎么办(手机耗电量太快怎么解决)

  • 荣耀9x头一次充电充多长时间(荣耀9x头一次充电要多久)

    荣耀9x头一次充电充多长时间(荣耀9x头一次充电要多久)

  • 手机节拍器怎么使用(手机节拍器怎么调十六分音符)

    手机节拍器怎么使用(手机节拍器怎么调十六分音符)

  • 小米cc9多少时间充满电(小米cc9e多长)

    小米cc9多少时间充满电(小米cc9e多长)

  • vue怎么调照片呈现速度(vue怎么照片设置)

    vue怎么调照片呈现速度(vue怎么照片设置)

  • 华为mate30防窥屏怎么设置(华为mate30防窥屏怎么开启)

    华为mate30防窥屏怎么设置(华为mate30防窥屏怎么开启)

  • 收藏别人朋友圈照片别人知道吗(收藏别人朋友圈内容别人知道吗)

    收藏别人朋友圈照片别人知道吗(收藏别人朋友圈内容别人知道吗)

  • 电脑格式工厂在哪里(电脑格式工厂软件在哪里)

    电脑格式工厂在哪里(电脑格式工厂软件在哪里)

  • 怎么关闭win11安全中心 win11安全中心关闭步骤(怎么关闭win11安装软件提示)

    怎么关闭win11安全中心 win11安全中心关闭步骤(怎么关闭win11安装软件提示)

  • Win10系统如何卸载电脑声卡?(win10系统如何卸载ie11)

    Win10系统如何卸载电脑声卡?(win10系统如何卸载ie11)

  • [Web安全入门]BURP基本使用详解(web安全如何入门)

    [Web安全入门]BURP基本使用详解(web安全如何入门)

  • 一年内到期的非流动负债是经营性负债吗
  • 定期定额征收和核定征收一样吗
  • 减免的附加税怎么做会计分录
  • 劳务分包和劳务外包
  • 计提固定资产折旧时可以先不考虑固定资产残值的方法是
  • 房产税从价计征的计税依据
  • 企业助学捐款分录怎么写
  • 可变股权转让对价会计处理怎么做?
  • 员工自己承担的商业保险费是多少
  • 未分配利润转增股本要交税吗
  • 往来核算会计的岗位职责和工作内容
  • 房产公司增值税和土地增值税
  • 固定资产作为实收资本报废怎么处理
  • 开给个人的通讯费发票能下账吗
  • 增值税专用发票可以开电子发票吗
  • 增值税专票盖章正确位置
  • 计提工资和实际发放工资
  • 计算本月生产成本怎么算
  • 委托代购商品的核算有
  • 跨年发票如何入账小企业会计准
  • 实际缴纳的增值税税额怎么算
  • 交易性金融资产公允价值变动计入
  • 跨月预缴如何做账
  • 预收贷款是什么会计科目
  • 公益性捐赠包括向脱贫地区捐赠吗
  • 开电脑店几年搞活动好吗
  • mac big sur 菜单栏
  • 金税盘减免税款申报的时候怎么填写
  • 营业外支出与营业收入之比应小于1%的说明
  • 收到税局退回增值税
  • php获取useragent
  • 境外服务收入如何申报增值税
  • 房地产企业利润
  • linuxvim批量替换
  • 费用报销单怎样粘贴
  • java项目中redis使用实例
  • 蚁群算法是什么
  • vue3 安装
  • 车保险费中的车险是什么
  • 帝国cms使用手册
  • 为什么其他权益工具投资不计提减值准备
  • 加工取得的存货成本会计分录
  • 应付账款为什么要算增值税
  • 现金流量表第四个期初现金余额怎么填
  • 金蝶系统结账之后反结账
  • 扶贫款分红怎么做账
  • 增值税出口免税不退税
  • 长期股权投资权益法账务处理
  • 分公司可以在银行贴现吗
  • 到期无法收回的银行承兑汇票计入什么科目
  • 报关单未申报做账怎么办
  • 销售退货和销售换货的区别
  • 永利股权投资基金怎么样
  • 企业转给法人的会计分录
  • 出口发票上的汇票是什么
  • 只有进项发票没有销售发票这种怎么做账
  • 国有资产无偿划转协议
  • 房地产开发企业增值税怎么算
  • 日记账的设置
  • 鼠标系统怎么安装
  • piped.exe
  • FNPLicensingService.exe是什么意思
  • 一劳永逸的方法是什么
  • windows出现问题怎么处理
  • xp系统进入桌面后没反应
  • Centos 6.5 64位双网卡绑定教程
  • 如何解决win7系统中鼠标键盘不能用
  • unity游戏之羊刀与Pendragon复盘:DotA做对了什么
  • 地形图高程点坐标高程提取
  • 学习英语
  • ubuntu安装选哪个
  • jquery选择指定标签
  • python自动化部署k8s集群
  • 基于jquery的移动端ui框架
  • python append、extend与insert的区别
  • 面向对象的三大特征
  • python之父推荐的书
  • java dom解析
  • android实时获取微信聊天信息
  • 律师到税务机关调取信息
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设