flex求长度

flex属性有很多,其中有三个是可以连在一起的,分别是flex-group,flex-shrink,flex-basis.

flex-group属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。

flex-shrink属性定义项目的缩小比例,默认是1,如果空间不足,则该项目会缩小。

flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。

所以flex最少可以设置一个值,为flex-group,最多设置三个值

<style>
*{margin:0;
 padding:0;}
.container{
    width:600px;
    height:300px;
    display:flex;
}
.left{flex:1 2 500px;
      background-color:red;
}
.right{flex:2 1 400px;
      background-color:blue;
}
</style>
<body>
    <div class="container">
        <div class="left"></div>
        <div class="right"></div>
    </div>
</body>

首先因为同时设置了flex-group和flex-shrink,所以flex-group无效。

溢出部分为500+400-600=300px,权重为2*500+1*400=1400

两个元素分别收缩

300*flex-shrink*500/1400=214.28(flex-shrink=2)

300*flex-shrink*400/1400=85.72(flex-shrink=1)

所以两个元素宽长度分别为500-214.28=285.72

400-85.72=314.28

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值