美文网首页
flex布局

flex布局

作者: XuZiYa | 来源:发表于2019-01-24 19:35 被阅读0次

    1.用在父容器上的属性

    - flex-direction

    设置容器的子元素的排列方向

    flex-direction: row | row-reverse | column | column-reverse;

    - flex-wrap

    设置弹性盒模型对象的子元素超出父容器时是否换行,如何换行

    flex-wrap: nowrap | wrap | wrap-reverse;

    - flex-flow

    flex-direction 和 flex-wrap 的缩写,默认值row nowrap

    flex-flow: <flex-direction> || <flex-wrap>;

    - justify-content

    设置子元素在主轴上的对齐方式

    justify-content: flex-start | flex-end | center | space-between | space-around;

    - align-items

    设置子元素在交叉轴上的对齐方式

    align-items: flex-start | flex-end | center | baseline | stretch;

    - align-content

    align-content: flex-start | flex-end | center | space-between | space-around | stretch;

    2.用在子元素上的属性

    - order

    定义子元素的排列顺序。数值越小,排列越靠前,默认为0。

    - align-self

    设置子元素在交叉轴上的对齐方式,可以覆盖父容器align-items的设置

    align-self: auto | flex-start | flex-end | center | baseline | stretch;

    - flex-basis

    flex-basis 用于设置子项的占用空间。如果设置了值,则子项占用的空间为设置的值;如果没设置或者为 auto,那子项的空间为width/height 的值。

    item1,flex-basis 默认是auto,则使用width的宽度,没有指定宽度,width为auto,所以宽度由内容决定;
    item2,flex-basis 为auto,则使用width的宽度,指定width 为70px,所以宽度是70px;
    item3,flex-basis 为100px,覆盖width 的宽度,所以宽度是100px。

    - flex-grow

    用来“瓜分”父容器“剩余空间”。

    容器的宽度为400px
    item1的占用的基础空间(flex-basis)为50px
    item2占用的基础空间是70px
    item3占用基础空间是100px,
    剩余空间为 400-50-70-100 = 180px。

    item1,flex-grow默认为0;
    item2,flex-grow为2;
    item3,flex-grow为1。

    剩余空间被分成3份; 每一份是180/(1+2)=60px;
    item2分得其中的两份,所以真实的占用空间为(70+60*2)=190px;
    item3分得其中的一份,所以真实的占用空间为(100+60)=160px;

    - flex-shrink

    用来“吸收”超出的空间

    容器的宽度为400px
    item1的占用的基础空间为250px
    item2占用的基础空间是150px
    item3占用基础空间是100px,
    超出的空间为100px;

    item1,flex-shrink默认为1;
    需要吸收的空间为(250 * 1)/(250 * 1+150 * 2+100 * 2) * 100 = 33.33px,
    所以真实占用空间为(250-33.33)=216.67px

    item2,flex-shrink为2;
    需要吸收的空间为(150 * 2)/(250 * 1+150 * 2+100 * 2) * 100=40px,
    所以真实占用空间为(150-40)=110px;

    item3,flex-shrink为2;
    需要吸收的空间为(100 * 2)/(250 * 1+150 * 2+100 * 2) * 100=26.67pxpx,
    所以真实占用空间为(100-26.67)=73.33px;

    - flex

    flex-grow, flex-shrink,flex-basis 的缩写,默认值为0 1 auto

    相关文章

      网友评论

          本文标题:flex布局

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