快速了解flex

flex有两个核心:轴和容器。轴决定了布局的方向。容器决定了flex作用目标和范围。Flexbox布局最适合应用程序的组件和小规模布局(一维布局)

一。作用在flex容器上(6个)

  • flex-direction
  • flex-wrap
  • flex-flow
  • justify-content
  • align-items
  • align-content

1. flex-direction 值为: row row-reverse column column-reverse

row为默认值,为当前文档流水平流方向,一般为从左到右,row-reverse为反方向。

column 显示为列,column-reverse为反方向。

2. flex-wrap 值为 nowrap wrap wrap-reverse

nowrap,默认值,表示单行显示,不换行。在子项宽度之和超过容器时,表现为:显示为一行并溢出,或者压缩子项显示为一行不溢出。具体情况要看子项width 的min-content 和 fit-content
wrap,宽度不足时换行显示。

3. flex-flow 是flex-direction 和 flex-wrap的缩写同事表示这连个属性;

写法如下:flex-flow: row wrap;

4. justify-content 值为:flex-start flex-end center space-between space-around

决定了水平方向子项的对齐和分布。和text-align类似,不过前者控制flex元素对齐,后者控制内联元素对齐。

5.align-content 值为:stretch flex-start flex-end center space-between space-around space-evenly

和justify-content相似且对立。表示垂直方向每一行flex元素的对齐和分布

6.align-items 值为:stretch flex-start flex-end center baseline

和align-content看起来很像,但这里针对的是每一个子项item,而不是一行

二,作用在子项上的flex(6个)

  • order
  • flex-grow
  • flex-shrink
  • flex-basis
  • flex
  • align-self

1.order 值为整数,默认0

表示某个子项的排序位置

2.flex-grow 值为正数(包括小数)和0,默认值是0(表示不扩展)

规则,容器剩余空间为1,flex-grow值小于1时,按值的比例增长扩展,大于1则占满。多个子项都设有flex-grow值并且总值大于1时,按他们的比例分配空间。

3.flex-shrink 值为正数(包括小数)和0,默认值是1(表示都收缩)0表示不收缩。主要处理当flex容器空间不足时候,单个元素的收缩比例

和flex-grow有点类似。flex-grow用在空间有多余。flex-shrink用在空间不够。

只一个子项设置flex-shrink,

  • 值小于1,则收缩不完全,仍会有一部分溢出
  • 值大于等于1,则完全收缩,正好填满。

有多个子项设置了flex-shrink

  • 值得总和小于1,收缩不完全,每个元素按比例就是设置的值
  • 值得总和大于等于1,收缩完全,每个元素按比例收缩

4. flex-basis 定义了分配剩余空间之前元素的默认大小。默认值为auto

5. flex

flex属性是flex-grow,flex-shrink和flex-basis的缩写。通常有3个写法

flex默认值,等同flex:0 1 auto;

flex:none,等同于flex: 0 0 auto;

flex:auto,等同于flex: 1 1 auto;

6.align-self

和align-items类似,不过align-items表示所有子项,align-self只表示自己。他们的用法一样。
值为:auto flex-start flex-end center baseline stretch
唯一的区别是多了auto这个值,表示继承flex容器的align-items属性值。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 学会 Flex 布局 因为它十分简单灵活,区区简单几行代码就可以实现各种页面的的布局,以前我在学习页面布局的时候我...
    V_cc857233阅读 239评论 0 0
  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 4,628评论 0 26
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,518评论 0 6
  • 前言 FlexBox是css3的一种新的布局方式,天生为解决布局问题而存在的它,比起传统的布局方式,我们使用Fle...
    zevei阅读 1,438评论 23 3
  • Flex布局 display: flex; 将对象作为弹性伸缩盒展示,用于块级元素 display: inline...
    白雪公主960阅读 799评论 1 1