flex属性取值

第一种情况flex属性不写

flex属性默认是0 1 auto
flex-grow为0,则存在剩余空间也不放大
flex-shrink为1,则空间不足该项目缩小
flex-basis为auto,则该项目本来的大小
原始代码:

<style>
    .parent {
        display: flex;
        width: 600px;
        background-color: currentColor;
    }
    .parent > div {
        height: 100px;
    }
    .item-1 {
        width: 100px;
        background: blue;
    }
    .item-2 {
        width: 100px;
        background: green;
    }
</style>
<div class="parent">
    <div class="item-1"></div>
    <div class="item-2"></div>
</div>

效果图:
这里写图片描述

第二种情况其中一个元素flex属性为一个非负数字

flex:1相当于
flex-grow为1
flex-shrink为1
flex-basis为0%

这里写图片描述

这里的计算过程是这样的:
由于item-1什么都没设,所以flex-basis为auto保持原来的大小即100px
item-2设置了flex:1,因为它的flex-basis为0%
所以剩余空间为:600 - 100 - 0% = 500px
因为item-2的flex-grow为1,所以这500px全部分配给item-2,所以item-2就为500px

第三种情况两个元素flex属性都为一个非负数字

它们将均分剩余空间,即各占300px

第四种情况flex-basis为一个固定数字

item-1为 flex: 1 1 100px;
item-2为 flex: 1 1 200px;
这里写图片描述
计算过程:
剩余空间为:600 - 100 - 200 = 300px
因为它们的flex-grow为1,所以剩余空间的就平均分配,即每项150px
在这里flex-basis设为固定值,相当于元素大小就为这个值
所以item-1为 100 + 150 = 250px
item-2为 200 + 150 = 350px

  • 7
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在CSS中,flex属性用于控制弹性盒子(flexbox)中子元素的伸缩性和分配空间的方式。flex属性取值有三个参数,分别表示:flex-grow、flex-shrink和flex-basis。 引用中的例子中,设置了一个flex容器(class为.box),其中包含一个子元素(class为.inner)。根据设置的flex-basis为300px,宽度为200px的子元素,flex-basis会覆盖掉width属性。因此,子元素的宽度为300px。 引用中的例子中,父容器的宽度为600px,子元素A的width为140px,flex属性为2 1 0%,子元素B的width为100px,flex属性为2 1 auto,子元素C没有设置width,flex属性为1 1 200px。根据flex属性的计算规则,A元素的宽度为140px,B元素的宽度为100px,C元素的宽度为360px。 引用中的例子中,父容器的宽度为600px,子元素A的width为140px,子元素B的width为100px,子元素C没有设置width,flex属性均为1。根据flex属性的计算规则,三个子元素的宽度会平均分配父容器的剩余空间。因此,A、B、C三个元素的宽度分别为200px。 综上所述,根据不同的flex属性设置,子元素的宽度会有所不同。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [flex:1及flex取值的理解](https://blog.csdn.net/weixin_38241212/article/details/108468241)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值