Flex入门基础——项目item的属性(order、flex-grow、flex-shrink、flex-basis、flex、align-self)
2016-11-12 12:39
537 查看
1、order
取值:数值
功能:(1)容器中有多个项目,
(2)项目的默认摆放时沿主轴(纵向)方向,即按文档中dom元素的书写顺序进行排列的;
应用:order属性用于更改在主轴方向上排列顺序。
order数值越小,排列越靠前,默认为0,可以为负数。
注意:order它与主轴的方向有关系(默认情况为主轴的方向)
现象:1排列在2的前边。
2、flex-grow
取值:数值
功能:放大因子
默认值为0,表示不去放大。
a、使用前提:主轴方向上有多余的空间可以让项目去“伸展”
b、计算步骤
(1)统计多余的空间:M=容器的宽度-所有项目的宽度
(2)确定均分的份数:N=项目flex-grow的值之和
(3)计算单位空间:P=M/N
(4)项目放大后的宽度:R=宽度+P*当前flex-flow值
使用方法:如上述代码示例中,若设置第一个item1——flex-grop:0,第二个item2——flex-grop:1
结果:第一个为默认的大小,第二个若容器项目有多余的空间,即会放大在item2上边。
结论:
如果一个项目flex-grow:0,则它的宽度不会放大
项目flex-grow越大,说明它在放大后,会得到更多的空间
项目flex-grow越小,说明它在放大后,会得到更少的空间
特别的:如果所有的项目有一样的flex-grow,它们会等分多余的空间,
也就是说,放大后大小=自身的大小+等值分配的大小
3、flex-shrink
取值:数值
功能:缩小因子
使用前提:主轴方向上的空间不够,项目被压缩。
默认值为1(当项目主轴方向不能容下全部项目,并且不允许换行。
由于flex-shrink为1,所有项目都会被压缩。)
各自被压缩的数值是不一样的,如下公式:
(1)总差值,即需要被压缩的大小:M=容器的宽度-项目的宽度之和
(2)加权和:N=flex-shrink *项目宽度值之和
(3)缩小后的宽度=项目值- 项目值* flex-shrink /N * N
结论:
(1)项目默认会被缩小(空间不够) flex-shrink:1
(2)Flex-shrink越大,被压缩的越多;
(3)Flex-shrink越小,被压缩的越小。特别的,当flex-shrink:0时,不会被压缩。
4、flex-basis
表示在主轴上占据的大小。
默认值为auto(主轴时水平方向时为宽度width,垂直方向时为高度height
(对于值而言,既可以是像素px,也可以是百分比,相对于容器container大小而言。)
5、flex弹性的
(1)该属性时flex-grow、flex-shrink、flex-basis的缩写
(2)默认值为:0 1 auto (后两个属性为可选)
(3)该属性有两个快捷键:auto(1 1 auto)、 none(0 0 auto)
6、align-self
取值:auto、flex-start、flex-end、center、baseline、stratch
功能:属性允许单个项目有与其他项目不一样的对齐方式,可覆盖容器的align-item属性。
Flex布局的总结:
Flex为display的一个属性值,
它约定了一套设置项目的大小、排列、排序的规则。
取值:数值
功能:(1)容器中有多个项目,
(2)项目的默认摆放时沿主轴(纵向)方向,即按文档中dom元素的书写顺序进行排列的;
应用:order属性用于更改在主轴方向上排列顺序。
order数值越小,排列越靠前,默认为0,可以为负数。
注意:order它与主轴的方向有关系(默认情况为主轴的方向)
.container{ width:100px;height:100px; flex-flow:column wrap; } .item1{ order:-1; } .item2{ order:1; } <div class="container"> <div class="item1">1</div> <div class="item2">2</div> </div>
现象:1排列在2的前边。
2、flex-grow
取值:数值
功能:放大因子
默认值为0,表示不去放大。
a、使用前提:主轴方向上有多余的空间可以让项目去“伸展”
b、计算步骤
(1)统计多余的空间:M=容器的宽度-所有项目的宽度
(2)确定均分的份数:N=项目flex-grow的值之和
(3)计算单位空间:P=M/N
(4)项目放大后的宽度:R=宽度+P*当前flex-flow值
使用方法:如上述代码示例中,若设置第一个item1——flex-grop:0,第二个item2——flex-grop:1
结果:第一个为默认的大小,第二个若容器项目有多余的空间,即会放大在item2上边。
结论:
如果一个项目flex-grow:0,则它的宽度不会放大
项目flex-grow越大,说明它在放大后,会得到更多的空间
项目flex-grow越小,说明它在放大后,会得到更少的空间
特别的:如果所有的项目有一样的flex-grow,它们会等分多余的空间,
也就是说,放大后大小=自身的大小+等值分配的大小
3、flex-shrink
取值:数值
功能:缩小因子
使用前提:主轴方向上的空间不够,项目被压缩。
默认值为1(当项目主轴方向不能容下全部项目,并且不允许换行。
由于flex-shrink为1,所有项目都会被压缩。)
各自被压缩的数值是不一样的,如下公式:
(1)总差值,即需要被压缩的大小:M=容器的宽度-项目的宽度之和
(2)加权和:N=flex-shrink *项目宽度值之和
(3)缩小后的宽度=项目值- 项目值* flex-shrink /N * N
结论:
(1)项目默认会被缩小(空间不够) flex-shrink:1
(2)Flex-shrink越大,被压缩的越多;
(3)Flex-shrink越小,被压缩的越小。特别的,当flex-shrink:0时,不会被压缩。
4、flex-basis
表示在主轴上占据的大小。
默认值为auto(主轴时水平方向时为宽度width,垂直方向时为高度height
(对于值而言,既可以是像素px,也可以是百分比,相对于容器container大小而言。)
5、flex弹性的
(1)该属性时flex-grow、flex-shrink、flex-basis的缩写
(2)默认值为:0 1 auto (后两个属性为可选)
(3)该属性有两个快捷键:auto(1 1 auto)、 none(0 0 auto)
6、align-self
取值:auto、flex-start、flex-end、center、baseline、stratch
功能:属性允许单个项目有与其他项目不一样的对齐方式,可覆盖容器的align-item属性。
Flex布局的总结:
Flex为display的一个属性值,
它约定了一套设置项目的大小、排列、排序的规则。
相关文章推荐
- HTML5基础加强css样式篇(伸缩容器子元素属性:order,flex-grow,flex-shrink,flex-basis,flex,align-self)(五十四)
- css3 flex属性flex-grow、flex-shrink、flex-basis学习笔记
- flexbox子盒子flex-grow,flex-shrink,flex-basis属性
- css3 flex属性flex-grow、flex-shrink、flex-basis学习笔记
- css3 flex属性flex-grow、flex-shrink、flex-basis学习笔记
- 深入理解 flex-grow & flex-shrink & flex-basis
- 深入理解 flex-grow & flex-shrink & flex-basis
- Flex中通过设置horizontalAlign风格设置FormItem容器中项目水平位置(Horizontally)的例子
- Flex弹性布局之flex-basis、flex-grow、flex-shrink分析
- Flex中通过设置direction属性改变FormItem容器中项目方向(direction)的例子
- 戏说flex-grow、flex-shrink、flex-basis
- flex布局中flex-basis|flex-grow|flex-shrink
- flex-grow、flex-shrink、flex-basis详解、flex:1;详解
- Flex入门基础——Flex布局、容器container的属性
- css3 flex属性flex-grow、flex-shrink、flex-basis学习笔记
- HTML5基础加强css样式篇(伸缩容器属性:flex-direction, flex-wrap,flex-flow,align-items,align-content)(五十三)
- 深入理解css3中的flex-grow、flex-shrink、flex-basis
- html基础 设置img的align属性,left,right 实现图文混排的效果
- Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析
- Android 属性动画基础,入门