flex:0 1 auto

flex:第一个参数表示flex-grow,用于设置元素占据剩余的空间,默认为0,表示不占据剩余空间

ex:

<div class="container">
    <div class="item1"></div>
    <div class="item2"></div>
    <div class="item3"></div>
</div>
<style>
    .container{
       width:1200px;
       display:flex;
    }
    .item1{
        width:300px;
        flex:0 1 auto;
    }
    .item2{
        width:400px;
        flex:1 1 auto;
    }
    .item3{
        width:400px;
        flex:2 1 auto;
    }
</style>

假设父容器总宽度为1200px,item1,item2,item3总共占据300+400+400=1100px,还剩余100px,item1的第一个参数为0,不参与占据剩余空间,item2和item3将剩余空间分成3分,各自分别追加100/3px,100*2/3px

2、第二个参数为flow-shrink,个人理解就是按比例缩减超出父容器宽度

ex:

<div class="container">
    <div class="item1"></div>
    <div class="item2"></div>
    <div class="item3"></div>
</div>
<style>
    .container{
       width:1200px;
       display:flex;
    }
    .item1{
        width:500px;
        flex:0 1 auto;
    }
    .item2{
        width:400px;
        flex:0 2 auto;
    }
    .item3{
        width:400px;
        flex:0 1 auto;
    }
</style>

三个子元素总宽度超出父容器100px,设置了参数为1 ,那么分别缩减的像素数为(500*1)/(500*1+400*2+400*1)*100px,(400*2)/(500*1+400*2+400*1)*100px,(400*1)/(500*1+400*2+400*1)*100px.

3.第三个参数为flex-basis,设置auto,可以自适应宽度

如有表述错误的地方,请各位及时指出,个人不胜感激!

猜你喜欢

转载自blog.csdn.net/qq_30596783/article/details/119111904