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
)的方向
row
row-reverse
column
column-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-start
flex-end
center
space-around
沿着主轴均匀分布,任意一端留有空间space-between
沿着主轴均匀分布,两端不会留有空间
flex排序
- flex的默认
order
是0 order
值大的显示顺序更靠后- 可设置负值排在前面