弹性布局

弹性布局是一种新类型的盒子模型,旨在提供一个更加有效的方式来布置,对齐和分布在容器之间的各项内容,即使他们的大小是未知或动态变化的。

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 '> 设置,如果自身的宽度没有定义,则长度取决于内容。

原文地址:https://www.cnblogs.com/wdm55/p/7187517.html