CSS弹性布局(Flexbox)是一种用于排列元素的布局模型,它提供了一套属性和值,使元素能够以弹性和自适应的方式排列在容器中。
使用Flexbox布局,需要将父容器的display属性设置为flex或inline-flex,这样子元素就可以成为弹性项目。
下面是一些常用的Flexbox属性及其作用:
-
flex-direction:指定弹性项目的排列方向。常见的取值有:
- row:水平排列(默认值)
- row-reverse:水平逆向排列
- column:垂直排列
- column-reverse:垂直逆向排列
-
flex-wrap:指定弹性项目是否换行。常见的取值有:
- nowrap:不换行(默认值)
- wrap:换行
- wrap-reverse:逆向换行
-
justify-content:指定弹性项目在主轴上的对齐方式。常见的取值有:
- flex-start:靠近主轴起点对齐(默认值)
- flex-end:靠近主轴终点对齐
- center:居中对齐
- space-between:两端对齐,项目之间的间隔相等
- space-around:每个项目两侧的间隔相等,项目之间的间隔是相邻间隔的两倍
-
align-items:指定弹性项目在交叉轴上的对齐方式。常见的取值有:
- stretch:默认值,项目拉伸以适应容器
- flex-start:靠近交叉轴起点对齐
- flex-end:靠近交叉轴终点对齐
- center:居中对齐
- baseline:以基线对齐(项目有基线时适用)
-
align-content:指定多行弹性项目在交叉轴上的对齐方式。常见的取值有:
- stretch:默认值,多行项目拉伸以适应容器
- flex-start:靠近交叉轴起点对齐
- flex-end:靠近交叉轴终点对齐
- center:居中对齐
- space-between:两端对齐,项目之间的间隔相等
- space-around:每行两侧的间隔相等,项目之间的间隔是相邻间隔的两倍
-
flex-grow:指定弹性项目的放大比例,默认为0,即不放大。如果设为1,则表示项目将占据所有剩余空间。如果设置为2,则表示项目将占据剩余空间的两倍。
-
flex-shrink:指定弹性项目的缩小比例,默认为1,即按照比例缩小。如果设为0,则表示项目不缩小。如果设置为2,则表示项目将缩小两倍。
-
flex-basis:指定弹性项目的初始长度。默认为auto,根据内容自动调整。可以设置为具体的长度值,如px或百分比。
以上是一些常用的Flexbox属性及其作用,通过灵活使用这些属性,可以实现各种弹性的布局效果。