flex布局 | CSS
flex布局 | 全面且简洁
💡常用但常忘的知识点 🤔 小小总结一下吧
flex模型说明

- 主轴(main axis)是沿着 flex 元素放置的方向延伸的轴(比如页面上的横向的行、纵向的列)。该轴的开始和结束被称为 main start 和 main end。
 - 交叉轴(cross axis)是垂直于 flex 元素放置方向的轴。该轴的开始和结束被称为 cross start 和 cross end。
 - 设置了 
display: flex的父元素被称之为 flex 容器(flex container)。 - 在 flex 容器中表现为弹性的盒子的元素被称之为 flex 项(flex item)
 
flex-direction
规定主轴(main axis)的方向
rowrow-reversecolumncolumn-reverse
flex-wrap
flex-wrap是CSS中用于控制Flex容器中的子元素如何换行的属性。它决定了当子元素在主轴方向上无法一行容纳时是否换行,并且指定了换行的方式。
nowrap(默认值):子元素不换行,尽量在一行容纳所有子元素。如果子元素的总宽度超过了容器的宽度,子元素可能会被缩小以适应容器。wrap:子元素允许换行,当子元素在主轴方向上无法一行容纳时,会换行显示。换行后的子元素将会从新的行开始排列。**
wrap-reverse**:子元素允许换行,与wrap相似,但换行后的子元素的排列顺序将会反转。
flew-flow
flex-direction和flex-wrap的缩写
1  |  | 
flex-grow
用于指定子元素在可用空间增加时的扩展比例。它的值为一个非负整数,默认为 0。
- 如果所有的子元素的 flex-grow 值都为 0,它们将不会扩展,宽度将根据它们的内容或固定宽度来确定。
 - 如果一个子元素的 flex-grow 值大于 0,而其他子元素的值为 0,那么这个子元素将占据剩余的可用空间,其占据空间的比例为 flex-grow 值与其他子元素的和的比例。
 
flex-shrink
用于指定子元素在空间不足时的缩小比例。它的值为一个非负整数,默认为 1。
- 如果所有的子元素的 flex-shrink 值都为 1,它们将按比例缩小,以适应容器的可用空间。
 - 如果一个子元素的 flex-shrink 值为 0,而其他子元素的值为 1,当空间不足时,其他子元素将缩小,而这个子元素将保持其原始大小
 
flex-basis
用于指定子元素在主轴上的初始大小。它的值可以是一个长度值(如像素、百分比等),或者关键字 auto。
- 如果设置为一个长度值(如 flex-basis: 100px;),子元素将具有固定的初始大小。
 - 如果设置为关键字 auto(如 flex-basis: auto;),子元素的大小将根据其内容或固有大小来确定。
 
动态尺寸
1  |  | 
属性缩写
当使用flex属性的缩写形式时,可以指定最多三个不同值:flex-grow、flex-shrink和flex-basis
1  |  | 
水平和垂直对齐
align-items控制flex项在交叉轴cross axis上的位置- 默认值是
stretch center居中常用flex-start``flex-end设置对齐开始结束align-self某个元素覆盖align-items
- 默认值是
 justify-content控制flex项在主轴main axis上的位置flex-startflex-endcenterspace-around沿着主轴均匀分布,任意一端留有空间space-between沿着主轴均匀分布,两端不会留有空间
flex排序
- flex的默认
order是0 order值大的显示顺序更靠后- 可设置负值排在前面