美文网首页
Flex布局总结

Flex布局总结

作者: Lins7 | 来源:发表于2018-07-27 18:42 被阅读0次

    Flex简介:

        当元素的display属性设置为flex的时候,该元素则是Flex容器,它的所有子元素自动成为容器的成员,则称为Flex项目(flex item),且Flex项目会脱离一般文档流变成Flex文档流。

    容器的属性:

       1、flex-direction:决定容器成员的排列方向(在flex容器中的子元素,脱离普通文档流,成为flex文档流)

          ① row(默认):水平方向,从左到右,起点在左

          ② row-reverse :水平方向,从右到左,起点在右

          ③ column:垂直方向,从上到下,起点在上

          ④ column-reverse:垂直方向,从下到上,起点在下

       2、flex-wrap:决定容器内成员排列时,是否换行(换行只会在容器宽度装不下成员的情况,才会发生)

            ① nowrap(默认):容器成员都只排在一条轴线上,即 容器成员宽度总和 大于 容器宽度,都不换行,而是自动平均压缩成员宽度,使所有成员排序在该轴线上。

          ② wrap:换行,第一行在容器上方

          ③ wrap-reverse:换行,第一行在容器下方

       3、flex-flow:该属性是flex-direction和flex-wrap的简写形式

            ① row nowrap(默认值)

    ② 参考上面取值,第一个值是flex-direction,第二个值是flex-wrap

       4、justify-content:决定容器成员在主轴上的水平对其方式

            ① flex-start(默认值):左对齐

            ② flex-end:右对齐

            ③ center:居中

            ④ space-between:两端对其,同一条主轴上的成员之间间隔相等

            ⑤ space-around:每个成员两侧的间隔相等,且最左边或者最右边的成员与容器边框的距离比成员间距离小一倍

        5、align-items:决定容器成员在交叉轴上的垂直对其方式(注意:该属性无法设置wrap换行的容器成员)

            ① stretch(默认值):如果成员未设置高度或者设为auto,将占满整个容器的高度

            ② flex-start:垂直方向,最上方对其(如果成员没有设置高度,则靠成员的内容撑起高度)

            ③ flex-end:垂直方向,最下方对其(如果成员没有设置高度,则靠成员的内容撑起高度)

            ④ center:垂直方向,居中对其(如果成员没有设置高度,则靠成员的内容撑起高度)

            ⑤ baseline:项目的第一行文字的基线对其,简单说就是:找到成员里第一行文字在最下面,其他成员的第一行文字进行对其(如果成员没有设置高度,则靠成员的内容撑起高度)

       6、align-content:多根轴线(已设置wrap并换行的容器才有效)在交叉轴上的垂直对其方式

            ① stretch(默认值):如果成员未设置高度或者设为auto,多行成员平均分配占满整个容器的高度

            ② flex-start:垂直方向,最上方对其(如果成员没有设置高度,则靠成员的内容撑起高度)

            ③ flex-end:垂直方向,最下方对其(如果成员没有设置高度,则靠成员的内容撑起高度)

            ④ center:垂直方向,居中对其(如果成员没有设置高度,则靠成员的内容撑起高度)

            ⑤space-between:与交叉轴两端对齐,轴线之间的间隔平均分布行文字进行对其

            ⑥space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。

    容器成员(Flex项目)的属性:

      order:属性定义项目的排列顺序。数值越小,排列轴线方向的越靠前,默认为0。

      flex-grow:成员的放大比例,默认为0,即如果存在剩余空间,也不放大。

            ① 如果设置为1,则告诉该成员需要放大容器剩余宽度(成员之间间隙就会不见)

            ② 如果是设置2或者2以上,且同轴的其他成员也有设置该属性,则按照互相之间的比例进行分配剩余空间

       flex-shrink:该属性定义了项目的缩小比例,默认为1,即如果容器的空间不足,该元素将缩小。(当容器为nowrap不换行时才会有效)

            ①如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。

            ② 如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。

        flex-basis:该属性定义了在分配多余空间之前,成员占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。

            ①它可以设为跟width或height属性一样的值(比如350px),则成员将占据固定空间,不受flex-grow和flex-shrink改变成员大小。

        flex:该属性是 flex-grow,  flex-shrink 和 flex-basis 的简写,默认值为 0 1 auto。后两个属性可选,写或不写都能配置。

        align-self:允许单个成员有与其他成员有不一样的对齐方式,可覆盖该成员身上的align-items属性。

            ① 默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。

            ② 取值参考align-items的所有取值。

    相关文章

      网友评论

          本文标题:Flex布局总结

          本文链接:https://www.haomeiwen.com/subject/agcgmftx.html