弹性布局是一种新类型的盒子模型,旨在提供一个更加有效的方式来布置,对齐和分布在容器之间的各项内容,即使他们的大小是未知或动态变化的。
display:flex / inline:flex(适用于父类容器元素上)
flex-direction:该属性通过定义flex容器的主轴方向来决定felx子项在flex容器中的位置。这将决定flex需要如何进行排列
- 该属性的反转取值不影响元素的绘制,语音和导航顺序,只改变流动方向
取值:row:主轴与行内轴方向作为默认的书写模式。即横向从左到右排列(左对齐)。
row-reverse:对齐方式与row相反。
column:主轴与块轴方向作为默认的书写模式。即纵向从上往下排列(顶对齐)。
column-reverse:对齐方式与column相反。
flex-wrap:该属性控制flex容器是单行或者多行,同时横轴的方向决定了新行堆叠的方向。
nowrap:flex容器为单行。该情况下flex子项可能会溢出容器w
rap:flex容器为多行。该情况下flex子项溢出的部分会被放置到新行,子项内部会发生断行
wrap-reverse:反转 wrap 排列。
flex-flow 属性是 flex-direction 和 flex-wrap 属性的复合属性。
justify-content 用于设置或检索弹性盒子元素在主轴(横轴)方向上的对齐方式。
flex-start弹性项目向行头紧挨着填充。
flex-end弹性项目向行尾紧挨着填充。
center弹性项目居中紧挨着填充。
space-between弹性项目平均分布在该行上。
space-around弹性项目平均分布在该行上,两边留有一半的间隔空间。
align-items 属性定义flex子项在flex容器的当前行的侧轴(纵轴)方向上的对齐方式。
- flex-start:弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴(纵轴)起始边界。
- flex-end:弹性盒子元素的侧轴(纵轴)结束位置的边界紧靠住该行的侧轴(纵轴)结束边界。
- center:弹性盒子元素在该行的侧轴(纵轴)上居中放置。(如果该行的尺寸小于弹性盒子元素的尺寸,则会向两个方向溢出相同的长度)。
- baseline:如弹性盒子元素的行内轴与侧轴为同一条,则该值与'flex-start'等效。其它情况下,该值将参与基线对齐。
- stretch:如果指定侧轴大小的属性值为'auto',则其值会使项目的边距盒的尺寸尽可能接近所在行的尺寸,但同时会遵照'min/max-width/height'属性的限制。
align-content (适用于父类容器上)设置或检索弹性盒堆叠伸缩行的对齐方式。
flex-start:各行向弹性盒容器的起始位置堆叠。
flex-end:各行向弹性盒容器的结束位置堆叠。
center:各行向弹性盒容器的中间位置堆叠。
space-between:各行在弹性盒容器中平均分布。
space-around:各行在弹性盒容器中平均分布,两端保留子元素与子元素之间间距大小的一半。
stretch:各行将会伸展以占用剩余的空间。
order 属性 设置或检索弹性盒模型对象的子元素出现的順序。
flex:复合属性。设置或检索弹性盒模型对象的子元素如何分配空间。
none:none关键字的计算值为: 0 0 auto
<' flex-grow '>:用来指定扩展比率,即剩余空间是正值时此「flex子项」相对于「flex容器」里其他「flex子项」能分配到空间比例。 在「flex」属性中该值如果被省略则默认为「1」
<' flex-shrink '>:用来指定收缩比率,即剩余空间是负值时此「flex子项」相对于「flex容器」里其他「flex子项」能收缩的空间比例。 在收缩的时候收缩比率会以伸缩基准值加权 在「flex」属性中该值如果被省略则默认为「1」
<' flex-basis '>:用来指定伸缩基准值,即在根据伸缩比率计算出剩余空间的分布之前,「flex子项」长度的起始数值。 在「flex」属性中该值如果被省略则默认为「0%」 在「flex」属性中该值如果被指定为「auto」,则伸缩基准值的计算值是自身的
<' width '> 设置,如果自身的宽度没有定义,则长度取决于内容。