flex布局学习之flex属性

语法

flex: flex-grow flex-shrink flex-basis
主要有三个值flex-grow,flex-shrink,flex-basis,感觉常用的就flex-grow,当然只有父元素设置diplay:flex时他们才起作用


flex-grow

1.当不设置flex-shrink,flex-basis的值或者flex-basis的总和小于父元素宽度的得时候会根据他计算各子元素宽度
html:

<div class="box">
    <div class="a">1</div>
    <div class="b">2</div>
    <div class="c">3</div>
    <div class="d">hello world!</div>
  </div>

css:

.box {
  width:300px;
  display:flex;
  height:40px;
  line-height:40px;
  text-align:center;
}
.box>div {
flex:1;
}
.box>div:nth-of-type(2) {
flex:2;
}

计算公式:b的width=2/(1+2+1+1)*300

flex-shrink和flex-basis

俩配合计算,平时只用width就行干嘛用flex-basis
当flex-basis的总和大于父元素宽度时就不用flex-grow计算了


html:

  <div class="box">
    <div class="f">1</div>
    <div class="g">2</div>
    <div class="k">3</div>
    <div class="l">4</div>
  </div>

css:

.box {
  width:300px;
  display:flex;
  height:40px;
  line-height:40px;
  text-align:center;
}
.box:nth-of-type(2)>div {
  flex:1;
  flex-shrink:1;
 border:1px solid #ccc;
  flex-basis: 100px;
}
.box:nth-of-type(2)>div:nth-of-type(2) {
  flex-shrink:2;
} 

因为flex-basis值为100,4个为400,比box设置300多出100,
100为溢出值
加权值:3x100+2x100=500
2x100/(3x100+2x100)=0.4
100x0.4=40
g的宽度:100-40=60


demo

相信大神的设计,虽然flex-shrink和flex-basis还没用到过,先简单了解下,呵呵
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 8,879评论 0 6
  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 10,108评论 0 26
  • CSS 3中弹性盒布局的最新版概述 在CSS 3中,CSS Flexible Box模块为一个非常重要的模块,该模...
    吾名无双阅读 4,973评论 0 5
  • 前言 FlexBox是css3的一种新的布局方式,天生为解决布局问题而存在的它,比起传统的布局方式,我们使用Fle...
    zevei阅读 5,252评论 23 3
  • RecyclerView Item 布局宽高无效问题探究 前言 这个问题很早之前就碰到过,后来通过google找到...
    TinyMen阅读 3,089评论 0 0