Flex 布局完全指南:从基础属性到实战技巧

📅 2026/7/18 23:13:56
Flex 布局完全指南:从基础属性到实战技巧
1. 什么是 Flex 布局Flex 布局是 CSS3 中一种强大的布局模型旨在为容器内的项目提供更有效、更灵活的排列、对齐和分配空间的方式Flex 布局的核心思想是赋予容器改变其子元素称为 Flex 项目的宽度、高度和顺序的能力以最佳方式填充可用空间。它特别适合构建一维布局行或列能够轻松解决传统布局中常见的垂直居中、等高等难题。2. Flex 容器与项目要使用 Flex 布局首先需要将一个元素的display属性设置为flex。这个元素就成为了Flex 容器其直接子元素自动成为Flex 项目。.container{display:flex;}3. 核心属性3.1 flex-direction主轴方向flex-direction属性定义了 Flex 项目在容器内的排列方向即主轴的方向。row(默认值)主轴为水平方向从左往右。.container{flex-direction:row;}row-reverse主轴为水平方向从右往左。.container{flex-direction:row-reverse;}column主轴为垂直方向从上往下。.container{flex-direction:column;}column-reverse主轴为垂直方向从下往上。.container{flex-direction:column-reverse;}3.2 justify-content主轴对齐justify-content属性定义了 Flex 项目在主轴上的对齐方式。flex-start(默认值)项目向主轴起点对齐。.container{justify-content:flex-start;}flex-end项目向主轴终点对齐。.container{justify-content:flex-end;}center项目在主轴上居中对齐。.container{justify-content:center;}space-between两端对齐项目之间的间隔相等。.container{justify-content:space-between;}space-around每个项目两侧的间隔相等所以项目之间的间隔比项目与边框的间隔大一倍。.container{justify-content:space-around;}3.3 align-items交叉轴单行对齐align-items属性定义了 Flex 项目在交叉轴与主轴垂直的轴上如何对齐适用于单行情况。stretch(默认值)如果项目未设置高度或设为auto将占满整个容器的高度。.container{align-items:stretch;}flex-start项目向交叉轴的起点对齐。.container{align-items:flex-start;}flex-end项目向交叉轴的终点对齐。.container{align-items:flex-end;}center项目在交叉轴上居中对齐。.container{align-items:center;}baseline项目根据它们的基线对齐。.container{align-items:baseline;}3.4 align-content交叉轴多行对齐align-content属性定义了多行Flex 项目在交叉轴上的对齐方式。当容器只有一行时此属性不起作用。stretch(默认值)多行拉伸以平分剩余空间。.container{align-content:stretch;}flex-start多行向交叉轴的起点对齐。.container{align-content:flex-start;}flex-end多行向交叉轴的终点对齐。.container{align-content:flex-end;}center多行在交叉轴上居中对齐。.container{align-content:center;}space-between交叉轴上两端对齐行之间的间隔相等。.container{align-content:space-between;}space-around每行两侧的间隔相等所以行之间的间隔比行与边框的间隔大一倍。.container{align-content:space-around;}3.5 align-self单个项目交叉轴对齐align-self属性允许单个 Flex 项目有与其他项目不一样的对齐方式可覆盖容器的align-items属性。它作用于Flex 项目上。auto(默认值)继承父容器的align-items属性。.item{align-self:auto;}stretch拉伸以填满容器交叉轴方向。.item{align-self:stretch;}flex-start向交叉轴起点对齐。.item{align-self:flex-start;}flex-end向交叉轴终点对齐。.item{align-self:flex-end;}center在交叉轴上居中对齐。.item{align-self:center;}baseline根据基线对齐。.item{align-self:baseline;}4. 实战示例与技巧divclasscontainerdiv我是垂直居中的内容/div/div.container{display:flex;justify-content:center;/* 主轴居中 */align-items:center;/* 交叉轴居中 */height:300px;border:1px solid #ccc;}5. 总结Flex 布局通过一套直观的属性极大地简化了 CSS 布局。记住这个核心关系容器属性控制整体排列flex-direction,justify-content,align-items,align-content,flex-wrap。项目属性控制个体行为flex(复合属性),align-self,order。掌握flex-direction确定方向用justify-content和align-items解决大部分对齐问题再用flex属性灵活分配空间。