flex-grow属性

干啥的?

根据弹性盒子元素所设置的扩展因子作为比率来分配剩余空间。

这定义读起来这拗口。实际很简单。比如说你定义了一个父容器,宽度600px。然后定义了3个子容器,宽度分别是200px,50px,50px。那么你这三个自容器势必不能占满你这个父容器。

恩,那么如果想让他占满呢?那你设置成加起来等于600不玩了。 除此之外,还有别的办法。弹性布局嘛
600-200-50-50=300px
还剩300.比如说我这300想按1:3的比例分给第二和第三个自容器。
flex-grow就是干这事的。

<ul class="flex">
    <li>a</li>
    <li>b</li>
    <li>c</li>
</ul>
<style>
.flex{display:flex;width:600px;margin:0;padding:0;list-style:none;}
.flex li:nth-child(1){width:200px;background:palevioletred;}
.flex li:nth-child(2){flex-grow:1;width:50px;background: paleturquoise;}
.flex li:nth-child(3){flex-grow:3;width:50px;background: peachpuff;}
</style>

怎么算的呢?
flex-grow的默认值为0,如果没有显示定义该属性,是不会拥有分配剩余空间权利的。
本例中b,c两项都显式的定义了flex-grow,flex容器的剩余空间分成了4份,其中b占1份,c占3分,即1:3
flex容器的剩余空间长度为:600-200-50-50=300px,所以最终a,b,c的长度分别为:
a: 50+(300/4)=200px
b: 50+(300/41)=125px
a: 50+(300/4
3)=275px

image.png

总结

就是把父容器剩余的给按比例分配一下

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 8,879评论 0 6
  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 10,111评论 0 26
  • 阅读目录移动开发基本知识点 calc基本用法box-sizing的理解及使用理解display:box的布局理解f...
    张宪宇阅读 5,464评论 0 1
  • Flex布局 布局的传统方案是基于盒模型,依赖display属性+float属性+position属性.但是对于那...
    我拥抱着我的未来阅读 5,224评论 0 4
  • 写写大字,受受打击,就不浮躁了。 笑。 飞如有恋堕无声,曲砌斜台看得盈;细草栖秀朱点染,晴丝撩片玉轻明。 江风漂泊...
    苏白杞阅读 3,199评论 16 11