管理杂谈OA答疑ERP答疑教程搜索

【HTML】CSS 中彻底搞懂 flex: 1,flex: auto,flex: 0 网页页面布局


我们在日常使用flex布局的时候,经常会用到 flex 缩写。flex简写设置了项目如何增大或缩小以适应在容器中可用的空间。flex简写属性在下面有三个值的定义 默认值为 0 1 auto;

  div class="wrapper "
    item class="inner"一一一一一一一一一一一一一一一一</item
    item class="inner"二二</item
    item class="inner"三三</item
    item class="inner"四四四四四四四四四四四四四四四四</item
  </div

flex:1

flex:1 = flex: 1 1 0%;

flex:1在父元素尺寸不足的时候,会优先最小化内容尺寸

下面我们给用例设置样式看下这句话是什么意思

.wrapper{
    margin0 auto;
    width560px;
    height40px;
    border: black 1px solid;
    display: flex;
  }
  .wrapper > .inner{
    border: chartreuse 1px solid;
    flex:1;
  }

image.png

从例子我们可以看出 flex:1 ,在充分分配容器尺寸的前提下,会优先牺牲自己,填充父容器的尺寸

使用场景

当我们希望元素可以充分的利用剩余的空间,同时不会很多的占用其他同级元素的空间的时候使用。

flex:auto

flex:auto = flex: 1 1 auto;

flex:auto在父元素尺寸不足的时候,会优先最大化内容尺寸。

.wrapper{
    margin0 auto;
    width560px;
    height40px;
    border: black 1px solid;
    display: flex;
  }
  .wrapper > .inner{
    border: chartreuse 1px solid;
    flex:auto;
  }

image.png

从例子我们可以看出 flex:auto ,在充分分配容器尺寸的前提下,会优先扩展自己,填充父容器的尺寸

使用场景

当我们希望元素充分的使用剩余的空间,各自元素按照各自内容进行分配的时候使用

flex:0

flex:0 = flex: 0 1 0%;

flex:0 :通常表现为内容最小化宽度

  .wrapper{
    margin0 auto;
    width560px;
    height40px;
    border: black 1px solid;
    display: flex;
    
  }
  .wrapper > .inner{
    border: chartreuse 1px solid;
    flex:0;
  }

image.png

从以上的例子可以看出:flex:0的时候元素的内容宽度最小化,并没有充分的分配容器的尺寸。

使用场景

当希望元素item占用最小化的内容宽度的时候

flex:none

flex:none = flex:0 0 auto;

flex:none;表示元素的大小由内容决定,但是flex-grow,flex-shrink都是0,元素没有弹性,通常表现为内容最大化宽度

  .wrapper{
    margin0 auto;
    width560px;
    height40px;
    border: black 1px solid;
    display: flex;
    
  }
  .wrapper > .inner{
    border: chartreuse 1px solid;
    flex:none;
  }

image.png

从以上的例子可以看出:flex:none的时候元素的内容直接溢出容器,没有换行,表现为最大内容宽度

使用场景:

元素的宽度就是内容的宽度,并且内容永远不会换行

总结

阮一峰flex布局语法篇[1]

张鑫旭博客[2]


更多精彩文章浏览...
点击右上角图标分享到朋友圈
官方网站:http://www.clicksun.cn
咨询热线:400-186-1886
服务邮箱:service@clicksun.cn