关于弹性盒子的一些笔记

弹性盒

弹性容器属性

属性 属性说明
flex-direction 设置主轴方向,确定弹性子元素排列方式
flex-wrap 当弹性子元素超出弹性容器范围时是否换行
flex-flow flex-direction和flex-wrap属性的快捷方式,复合属性
justify-content 主轴上的对齐方式
align-items 侧轴(纵向)上的对齐方式
align-content 侧轴(纵向)上有空白时侧轴的对齐方式

弹性子元素属性

属性 属性说明
order 控制弹性容器里子元素的顺序
flex-wrap 设置弹性子元素的扩展比率
flex-shrink 设置弹性子元素的收缩比率
flex-basis 指定弹性子元素伸缩前的默认大小值,相当于width和height属性。
flex flex-grow,flex-shrink和flex-basis属性的复合属性
align-self 允许独立的弹性子元素覆盖弹性容器的默认对齐设置(align-items)

弹性容器属性

flex-direction

指定了弹性子元素在父容器中的位置
指定排列方式

属性 属性说明
row 横向从左到右排列(左对齐),默认的排列方式。(1,2,3,4,5)
row-reverse 反转横向排列(右对齐,从后往前排,最后一项排在最前面。(5,4,3,2,1)
column 纵向排列
column-reverse 反转纵向排列,从后往前排,最后一项排在最上面

justify-content

内容对齐(justify-content)属性应用在弹性容器上,把弹性项沿着弹性容器的主轴线(main axis)对齐

属性 属性说明
flex-start 默认值。项目位于容器的开头。
flex-end 项目位于容器的结尾
center 项目位于容器的中心。
space-between 项目位于各行之间留有空白的容器内。
space-around 项目位于各行之前、之间、之后都留有空白的容器内。
initial 设置该属性为它的默认值
inherit 从父元素继承该属性

align-items

侧轴(纵向)上的对齐方式

属性 属性说明
flex-start 侧轴开始对齐,主轴为横轴,顶对齐
flex-end 侧轴开始对齐,主轴为横轴 底对齐
center 居中对齐
baseline 基线对齐
stretch(默认值) 从侧轴开始到侧轴结束铺满整个侧轴(没有设置固定高的情况下)

flex-wrap

属性用于指定弹性盒子的子元素换行方式

属性 属性说明
nowrap 不换行(结合flex-direction,元素自动压缩大小)
wrap 换行(没有设置align-content的情况下,间隔很款)
center 居中对齐

align-content

侧轴有空白且有多行时,设置弹性子元素侧轴上的对齐方式

属性 属性说明
flex-start 主轴开始对齐,主轴为横轴,ltr环境下, 左对齐
flex-end 主轴结束对齐,主轴为横轴,1tr环境下,右对齐
center 居中对齐
space-between 第一个、最后一个对齐弹性容器的边缘,其余均匀分布。
space-around 全部均匀分布
stretch 各行伸展以占用剩余空间。如果剩余空间是负数,该值等效于flex-

弹性盒子元素

order

  • 设置弹性子元素的顺序,数值小的排在前面,可以为负值,标签的顺序不会变动

flex-grow:<number>

  • 设置弹性子元素的扩展比率,不允许为负值,默认值为0。
  • 根据弹性盒子元素 所设置的扩展因子作为比率来分配剩余空间
  • 将空白区域分成几份,弹性子元素所占的比例
  • 如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。
  • flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。
  • 如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。

flex-shrink:<number>

  • 设置弹性子元素的收缩比率,不允许为负值,默认值为1
  • 根据弹性盒子元素所设置的扩展因子作为比率来收缩空间
  • flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。

flex-basis :<length> | | auto

  • 设置弹性子元素的伸缩基准值,不允许为负值。 默认值为auto,无特定宽度(高度)。
  • flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)
  • 浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。

混合写法

flex:none | [ flex-grow ] || [ flex-shrink ] || [ flex-basis ]

  • 复合属性,设置弹性子元素的如何分配空间

align-self

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

  • 设置弹性子元素的在侧轴上的对齐方式,与align-item的相同。设置某个弹性子元素的独立对齐方式。
原文地址:https://www.cnblogs.com/yiniantt/p/14229203.html