弹性布局(Flexbox)是一种网页布局模型,旨在提供一种更加灵活和自适应的方式来排列、对齐和分配容器中的元素。它允许容器中的子元素根据可用空间自动调整大小、分配空间和对齐方式。
弹性布局通过使用`display: flex;`来应用于父容器,然后通过设置子元素的属性来控制其行为。以下是弹性布局的一些关键概念和属性:
1. 主轴(main axis)和交叉轴(cross axis):
- 主轴是弹性容器的方向,可以是水平方向(默认)或垂直方向。
- 交叉轴是与主轴垂直的轴。
2. 弹性容器的属性:
- `flex-direction`:定义主轴的方向(水平或垂直)。
- `justify-content`:定义子元素在主轴上的对齐方式。
- `align-items`:定义子元素在交叉轴上的对齐方式。
- `flex-wrap`:定义是否换行排列子元素。
- `align-content`:定义多行子元素在交叉轴上的对齐方式(仅在多行情况下生效)。
3. 弹性子元素的属性:
- `flex`:定义子元素的伸缩比例和基准大小。
- `align-self`:定义子元素在交叉轴上的对齐方式,覆盖容器的`align-items`设置。
使用弹性布局可以轻松实现如等宽布局、居中对齐、自适应布局等多种复杂的布局效果,而不需要使用传统的浮动、定位等方法。
弹性布局在CSS中的使用方式如下:
```css
.container {
display: flex;
flex-direction: row; /* 或 column */
justify-content: center;
align-items: center;
}
```
以上代码示例将一个名为`.container`的元素设置为弹性容器,水平方向排列子元素,居中对齐。
总之,弹性布局是一种灵活、自适应的网页布局模型,通过设置容器和子元素的属性来调整布局,提供了更多的布局控制和适应性。