flex

Posted zoukun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flex相关的知识,希望对你有一定的参考价值。

  • 任何一个容器(inline/block)都可以指定为 Flex 布局。
  • 设为 Flex 布局以后,子元素的float、clear和vertical-align属性将失效。
  • 单个项目(flex-item)占据的主轴空间叫做 main size,占据的交叉轴空间叫做cross size。

  

 

1、容器的属性
  
            flex-direction: row | row-reverse | column | column-reverse;              决定主轴的方向(即项目的排列方向)
                                        row         :   主轴为水平方向,起点在左端。(默认)
                                        row-reverse :  主轴为水平方向,起点在右端。
                                        column       :  主轴为垂直方向,起点在上沿。
                                        column-reverse:主轴为垂直方向,起点在下沿。  


            flex-wrap: nowrap | wrap | wrap-reverse;                              flex-item 换行
                                        nowrap      :不换行(默认)。//放缩
                                        wrap:换行,第一行在上方。
                                        wrap-reverse:换行,第一行在下方。


                    flex-flow: <flex-direction> || <flex-wrap>;                                复合属性         


            justify-content: flex-start | flex-end | center | space-between | space-around; 定义了项目(flex-item)在主轴上的对齐方式。
                                        flex-start  :左对齐 (默认值)
                                        flex-end    :右对齐
                                        center      : 居中
                                        space-between:两端对齐,项目之间的间隔都相等。//项目个数等于2
                                        space-around :每个项目两侧的间隔相等。==> 项目之间的间隔比项目与边框的间隔大一倍。


            align-items: flex-start | flex-end | center | baseline | stretch;        定义项目在交叉轴上如何对齐。
                                        stretch :如果项目未设置高度或设为auto,将占满整个容器的高度。(默认值)
                                        flex-start:交叉轴的起点对齐。
                                        flex-end:交叉轴的终点对齐。
                                        center:交叉轴的中点对齐。
                                        baseline: 项目中(flex-item)的第一行文字的基线对齐。

            align-content: flex-start | flex-end | center | space-between | space-around | stretch;  定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。
                        //==>必须对父元素设置自由盒属性display:flex;,并且设置排列方式为横向排列flex-direction:row;并且设置换行,flex-wrap:wrap;这样这个属性的设置才会起作用。 
                                        stretch :轴线占满整个交叉轴。(默认值)---》拉伸容器内每个项目占用的空间,填充方式为给每个项目下方增加空白。
                                        flex-start:与交叉轴的起点对齐。
                                        flex-end:与交叉轴的终点对齐。
                                        center:与交叉轴的中点对齐。   --》 取消项目之间的空白并把所有项目垂直居中,使得元素位于容器的(交叉轴)中心
                                        space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
                                        space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
 
                                   
 2、项目(flex-item)的属性
 
            order: <integer>;                       定义项目(flex-item)的排列顺序。数值越小,排列越靠前, 默认为0。(可以为负数)
            flex-grow: <number>;                    定义项目的放大比例 ,即如果存在剩余空间,也不放大。     默认为0
            flex-shrink: <number>;                  定义了项目的缩小比例,即如果空间不足,该项目将缩小。   默认为1
            flex-basis: <length> | auto;            定义了在分配多余空间之前,项目占据的主轴空间(main size)   默认为auto(即项目的本来大小。)

                        flex: none | [ <‘flex-grow‘> <‘flex-shrink‘>? || <‘flex-basis‘> ]       复合属性

            align-self: auto | flex-start | flex-end | center | baseline | stretch;        允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto    
                                                                                                //auto ==>承父元素的align-items属性,如果没有父元素,则等同于stretch。


  常用 布局 格式  推荐阅读:
                http://www.ruanyifeng.com/blog/2015/07/flex-examples.html

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

以上是关于flex的主要内容,如果未能解决你的问题,请参考以下文章

将滚动应用到 f​​lex 容器的特定部分

Bootstrap 4 使用 flex-grow 使嵌套的行填充父级填充视口高度

Flex-弹性布局

无法隐藏溢出内容

css3基础

day02 微信小程序