Flex 布局

image.png

------------------------- flex container -------------------------

  1. flex-flow是flex-direction || flex-wrap的简写

  2. flex-direction设置主轴(main axis)的方向

  3. flex-wrap设置是否换行

  4. justify-content设置flex items在main axis上的对齐方式

  5. align-items设置flex items在cross axis的对齐方式(一般是针对单行)

  6. align-content设置flex items在cross axis上对齐方式(一般是针对多行)

------------------------- flex items -------------------------

  1. flex是flex-grow flex-shrink? || flex-basis的简写

  2. flex-grow决定了flex items在main axis方向上如何扩展

  3. lex-shrink决定了flex items在main axis方向上如何收缩

  4. flex-basis设置flex items在main axis方向上的base size

  5. order设置flex items的排布顺序

  6. align-self允许flex items覆盖flex container设置的align-items

flex container

        flex-direction
            决定了main axis的方向,有4个取值
            row(默认值)、row-reverse、column、column-reverse
            flex items默认沿着main axis(主轴)从main start开始往main end方向排布

        justify-content
            决定了flex items在main axis上的对齐方式
            flex-start(默认值):与main start对齐
            flex-end:与main end对齐
            center:居中对齐
            space-between:与main start、main end两端对齐;flex items之间的间距相等
            space-around:与main start、main end之间的距离等于flex items之间的距离的一半;flex items之间的间距相等
            space-evenly:与main start、main end之间的距离等于flex items之间的距离;flex items之间的间距相等

         align-items
            决定了flex items在 cross axis上的对齐方式
            stretch(默认值):当flex items在cross axis方向的size为auto时,会自动拉伸至填充flex container
            flex-start:与cross start对齐
            flex-end:与cross end对齐
            center:居中对齐
            baseline:与基线对齐

        flex-wrap
            决定flex container是单行还是多行
            nowrap: 单行
            wrap:多行
            wrap-reverse:多行(对比wrap,cross start与cross end相反)

        flex-flow:
            flex-direction || flex-wrap的简写 

        align-content:
            决定了多行flex items在cross axis上的对齐方式,用法与justify-content类似
            stretch(默认值):与align-items的stretch类似
            flex-start:与cross start对齐
            flex-end:与cross end对齐
            center:居中对齐
            space-between:
            space-around:
            space-evenly:

flex items

        align-self
        
        order

        flex-grow
            决定了flex items如何扩展
            可以设置任意非负数字(正小数、正整数、0),默认值是0
            当flex container在main axis方向上有剩余size时,flex-grow属性才会有效
            1.如果所有flex items的flex grow总和sum超过1, 每个flex item扩展的size为 flex container的剩余size * flex-grow / sum
            2.如果所有flex items的flex grow总和sum不超过1,每个flex item扩展的size为 flex container的剩余size * flex-grow
            3.flex items扩展的最终size不超过max-width\max-height

        flex-shrink:
            决定了flex items如何收缩
            可以设置任意非负数字(正小数、正整数、0),默认值是1
            当flex items在main axis方向上超过了flex container,flex-shrink属性才会有效
            
            每个flex item收缩的size为
            flex items超出flex container的size * 收缩比例 / 所有flex items的收缩比例之和
            收缩比例 = flex-shrink * flex item的base size
            base size就是flex item放入flex container之前的size

            flex items收缩的最终size不超过min-width\min-height

        flex-basis
            设置flex items在main axis方向上的base size
            auto(默认值)、content:取决于内容本身的size
            决定flex items最终base size的因素,从优先级高到底
            1. max- 、min-
            2. flex-basis
            3. width/height
            4. 内容本身的size

        flex
            是flex-grow flex-shrink? || flex-basis的简写
            ? : 可有可无
            默认值是 0 1 auto
            none:0 0 auto
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、简介 1.1、flex 布局 (Flexible布局,弹性布局)是在小程序里面常用的布局方式官方文档:flex...
    IIronMan阅读 3,652评论 0 2
  • 一、起步 1、flex介绍 使用flex弹性布局的元素,称为flex 容器(flex-container)。它的所...
    马柚柚阅读 5,323评论 0 0
  • flex 布局 Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。...
    开了那么阅读 3,146评论 0 1
  • 一.什么是flex布局? 官方说法:Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供...
    Jason杰森阅读 3,954评论 0 1
  • 网页布局(layout)是CSS的一个重点,传统的方式是基于盒子模型,依赖display、position、flo...
    JunChow520阅读 4,818评论 0 0

友情链接更多精彩内容