CSS Flexbox弹性布局完全指南,轻松实现智能布局利器
Flexbox是CSS设计中,专为一维布局设计的强大工具。它能轻松解决垂直居中、等高列、空间分配等传统布局难题。
本文将带你从零开始,全面掌握Flexbox。
一、Flexbox是什么?
Flexbox(弹性盒子布局)是一种一维的布局模型,它提供了高效的方式来对容器内的项目进行排列、对齐和空间分配,即使它们的大小是未知或动态的。
二、基本概念:容器与项目
采用Flex布局的元素称为Flex容器(flex container),其直接子元素则自动成为Flex项目(flex item)。
.container {
    display: flex; /* 或 inline-flex */
}设置display: flex;后,.container变为弹性容器,其子元素(项目)则成为弹性项目。
三、容器属性(作用于父容器)
- flex-direction:决定主轴的方向(即项目的排列方向)。- row(默认):水平,从左到右。
- row-reverse:水平,从右到左。
- column:垂直,从上到下。
- column-reverse:垂直,从下到上。
 
- justify-content:定义项目在主轴上的对齐方式。- flex-start(默认):左对齐。
- flex-end:右对齐。
- center:居中。
- space-between:两端对齐,项目间间隔相等。
- space-around:每个项目两侧间隔相等。
 
- align-items:定义项目在交叉轴上的对齐方式。- stretch(默认):拉伸填满容器高度。
- flex-start:交叉轴的起点对齐。
- flex-end:交叉轴的终点对齐。
- center:交叉轴的中点对齐(轻松实现垂直居中!)。
 
- flex-wrap:定义项目是否换行。- nowrap(默认):不换行。
- wrap:换行。
 
四、项目属性(作用于子项目)
- flex-grow:定义项目的放大比例,默认为0(不放大)。如果所有项目的flex-grow都为1,则等分剩余空间。
- flex-shrink:定义项目的缩小比例,默认为1(空间不足时等比缩小)。
- order:定义项目的排列顺序。数值越小,排列越靠前,默认为0。
五、经典示例:水平垂直居中
Flexbox让经典的居中问题变得异常简单。
.center-me {
    display: flex;
    justify-content: center; /* 主轴居中 */
    align-items: center;     /* 交叉轴居中 */
    height: 300px;
}六、总结
Flexbox是现代CSS布局的基石,它极大地简化了复杂布局的实现。要学好CSS网页样式设计,请务必熟练掌握容器和项目的核心属性。