弹性盒子之项目属性

100 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第21天,点击查看活动详情

前面一章给大家介绍了什么是弹性盒子,以及容器有关的属性,今天给大家介绍一个弹性盒子项目身上的属性。

项目属性(子元素的属性)

1、 order

定义项目的排列顺序,数值越小,排列越靠前,默认值为0 值:为数字可以是负数

2、flex-grow

作用:  定义项目在容器的剩余空间里的放大比例 值:是数字,默认是0,就是如果存在剩余空间也不放大。

注意:如果所有项目的flex-grow属性值都为1,则他们将等分剩余的空间,如果一个项目的flex-grow属性为2,其他项目为1,则前者占据的空间要比其他项目多一倍。

3、flex-shrink

作用:定义项目的缩小比例 值:是数字  默认值为1,就是如果空间不足,该项目将缩小

注意:如果所有项目的flex-shrink值都为1,当容器空间不足时,所有项目等比缩小,如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小,负值无效

4、flex-basis

  • 作用:定义了在分配多余空间之前,该项目占据的主轴空间,浏览器根据这个属性,计算主轴是否有多余空间,它的默认值为auto,就是项目本来的宽高
  • 语法:flex-basis:多少px / auto / 百分比;(100%表示充满整个容器的宽)
  • 它可以设置为跟width或height属性一样的(350px),则该项目将占据固定空间。
  • flex属性是flex-growflex-shrinkflex-basis的简写,默认值为0 1 auto
  • auto 相当于(1 1 auto)  1相当于(1 1 0%)
  • none相当于(0 0 auto)

建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值

5、align-self

作用:允许单个项目与其他项目不一样的对齐方式,可覆盖align-items属性,默认值为auto,表示继承父元素的align-items,如果没有父元素,则等同于stretch

  • 值1:auto
  • 值2:flex-start
  • 值3:flex-end
  • 值4:center
  • 值5:baseline
  • 值6:stretch默认值

想设置水平排列, flex:值:数字;该属性加给项目。该属性会让项目根据容器的剩余空间,进行分配份数