手册

目录

CSS高级
accent-color align-content align-items align-self all animation animation-delay animation-direction animation-duration animation-fill-mode animation-iteration-count animation-name animation-play-state animation-timing-function aspect-ratio backdrop-filter backface-visibility background background-attachment background-blend-mode background-clip background-color background-image background-origin background-position background-position-x background-position-y background-repeat background-size block-size border border-block border-block-color border-block-end border-block-end-color border-block-end-style border-block-end-width border-block-start border-block-start-color border-block-start-style border-block-start-width border-block-style border-block-width border-bottom border-bottom-color border-bottom-left-radius border-bottom-right-radius border-bottom-style border-bottom-width border-collapse border-color border-end-end-radius border-end-start-radius border-image border-image-outset border-image-repeat border-image-slice border-image-source border-image-width border-inline border-inline-color border-inline-end border-inline-end-color border-inline-end-style border-inline-end-width border-inline-start border-inline-start-color border-inline-start-style border-inline-start-width border-inline-style border-inline-width border-left border-left-color border-left-style border-left-width border-radius border-right border-right-color border-right-style border-right-width border-spacing border-start-end-radius border-start-start-radius border-style border-top border-top-color border-top-left-radius border-top-right-radius border-top-style border-top-width border-width bottom box-decoration-break box-reflect box-shadow box-sizing break-after break-before break-inside caption-side caret-color @charset 规则 clear clip clip-path color color-scheme column-count column-fill column-gap column-rule column-rule-color column-rule-style column-rule-width column-span column-width columns @container 规则 content counter-increment counter-reset counter-set @counter-style 规则 cursor direction display empty-cells filter flex flex-basis flex-direction flex-flow flex-grow flex-shrink flex-wrap float font @font-face 规则 font-family font-feature-settings font-kerning @font-palette-values 规则 font-size font-size-adjust font-stretch font-style font-variant font-variant-caps font-weight gap grid grid-area grid-auto-columns grid-auto-flow grid-auto-rows grid-column grid-column-end grid-column-gap grid-column-start grid-gap grid-row grid-row-end grid-row-gap grid-row-start grid-template grid-template-areas grid-template-columns grid-template-rows hanging-punctuation height hyphens hyphenate-character image-rendering @import 规则 initial-letter inline-size inset inset-block inset-block-end inset-block-start inset-inline inset-inline-end inset-inline-start isolation justify-content justify-items justify-self @keyframes 规则 @layer 规则 left letter-spacing line-height list-style list-style-image list-style-position list-style-type margin margin-block margin-block-end margin-block-start margin-bottom margin-inline margin-inline-end margin-inline-start margin-left margin-right margin-top marker marker-end marker-mid marker-start mask mask-clip mask-composite mask-image mask-mode mask-origin mask-position mask-repeat mask-size mask-type max-block-size max-height max-inline-size max-width @media 规则 min-block-size min-inline-size min-height min-width mix-blend-mode @namespace 规则 object-fit object-position offset offset-anchor offset-distance offset-path offset-position offset-rotate opacity order orphans outline outline-color outline-offset outline-style outline-width overflow overflow-anchor overflow-wrap overflow-x overflow-y overscroll-behavior overscroll-behavior-block overscroll-behavior-inline overscroll-behavior-x overscroll-behavior-y padding padding-block padding-block-end padding-block-start padding-bottom padding-inline padding-inline-end padding-inline-start padding-left padding-top @page 规则 page-break-inside paint-order perspective perspective-origin place-content place-items place-self pointer-events position @property 规则 quotes resize right rotate row-gap scale @scope 规则 scroll-behavior scroll-margin scroll-margin-block scroll-margin-block-end scroll-margin-block-start scroll-margin-bottom scroll-margin-inline scroll-margin-inline-end scroll-margin-inline-start scroll-margin-left scroll-margin-right scroll-margin-top scroll-padding scroll-padding-block scroll-padding-block-end scroll-padding-block-start scroll-padding-bottom scroll-padding-inline scroll-padding-inline-end scroll-padding-inline-start scroll-padding-right scroll-padding-top scroll-snap-stop scroll-snap-type scrollbar-color shape-outside @starting-style 规则 @supports 规则 tab-size table-layout text-align text-align-last text-decoration text-decoration-color text-decoration-line text-decoration-style text-decoration-thickness text-emphasis text-emphasis-color text-emphasis-position text-emphasis-style text-indent text-justify text-orientation text-overflow text-shadow text-transform text-underline-offset text-underline-position top transform-origin transform-style transition transition-delay transition-duration transition-property transition-timing-function translate unicode-bidi user-select vertical-align visibility white-space widows width word-break word-spacing word-wrap writing-mode z-index zoom

Flexbox

收藏668

阅读1042

更新时间2025-07-16

CSS Flexbox 布局模块

在 Flexbox 布局模块(问世)之前,可用的布局模式有以下四种:

  • 块(Block),用于网页中的部分(节)
  • 行内(Inline),用于文本
  • 表,用于二维表数据
  • 定位,用于元素的明确位置

弹性框布局模块,可以更轻松地设计灵活的响应式布局结构,而无需使用浮动或定位。

浏览器支持

所有现代浏览器均支持 flexbox 属性。

29.0 11.0 22.0 10 48

Flexbox 元素

如需开始使用 Flexbox 模型,您需要首先定义 Flex 容器。

1 2 3

上面的元素表示一个带有三个 flex 项目的 flex 容器(蓝色区域)。

实例

含有三个 flex 项目的 flex 容器:

1
2
3
运行实例 »

点击 "运行实例" 按钮查看在线实例

父元素(容器)

通过将 display 属性设置为 flex,flex 容器将可伸缩:

1 2 3

实例

.flex-container {
  display: flex;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

以下是 flex 容器属性:

  • flex-direction
  • flex-wrap
  • flex-flow
  • justify-content
  • align-items
  • align-content

flex-direction 属性

flex-direction 属性定义容器要在哪个方向上堆叠 flex 项目。

1 2 3

实例

column 值设置垂直堆叠 flex 项目(从上到下):

.flex-container {
  display: flex;
  flex-direction: column;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

column-reverse 值垂直堆叠 flex 项目(但从下到上):

.flex-container {
  display: flex;
  flex-direction: column-reverse;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

row 值水平堆叠 flex 项目(从左到右):

.flex-container {
  display: flex;
  flex-direction: row;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

row-reverse 值水平堆叠 flex 项目(但从右到左):

.flex-container {
  display: flex;
  flex-direction: row-reverse;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

flex-wrap 属性

flex-wrap 属性规定是否应该对 flex 项目换行。

下面的例子包含 12 个 flex 项目,以便更好地演示 flex-wrap 属性。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

实例

wrap 值规定 flex 项目将在必要时进行换行:

.flex-container {
  display: flex;
  flex-wrap: wrap;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

nowrap 值规定将不对 flex 项目换行(默认):

.flex-container {
  display: flex;
  flex-wrap: nowrap;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

wrap-reverse 值规定如有必要,弹性项目将以相反的顺序换行:

.flex-container {
  display: flex;
  flex-wrap: wrap-reverse;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

flex-flow 属性

flex-flow 属性是用于同时设置 flex-direction 和 flex-wrap 属性的简写属性。

实例

.flex-container {
  display: flex;
  flex-flow: row wrap;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

justify-content 属性

justify-content 属性用于对齐 flex 项目:

1 2 3

实例

center 值将 flex 项目在容器的中心对齐:

.flex-container {
  display: flex;
  justify-content: center;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

flex-start 值将 flex 项目在容器的开头对齐(默认):

.flex-container {
  display: flex;
  justify-content: flex-start;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

flex-end 值将 flex 项目在容器的末端对齐:

.flex-container {
  display: flex;
  justify-content: flex-end;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

space-around 值显示行之前、之间和之后带有空格的 flex 项目:

.flex-container {
  display: flex;
  justify-content: space-around;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

space-between 值显示行之间有空格的 flex 项目:

.flex-container {
  display: flex;
  justify-content: space-between;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

align-items 属性

align-items 属性用于垂直对齐 flex 项目。

1 2 3

在这些例子中,我们使用 200 像素高的容器,以便更好地演示 align-items 属性。

实例

center 值将 flex 项目在容器中间对齐:

.flex-container {
  display: flex;
  height: 200px;
  align-items: center;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

flex-start 值将 flex 项目在容器顶部对齐:

.flex-container {
  display: flex;
  height: 200px;
  align-items: flex-start;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

flex-end 值将弹性项目在容器底部对齐:

.flex-container {
  display: flex;
  height: 200px;
  align-items: flex-end;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

stretch 值拉伸 flex 项目以填充容器(默认):

.flex-container {
  display: flex;
  height: 200px;
  align-items: stretch;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

baseline 值使 flex 项目基线对齐:

.flex-container {
  display: flex;
  height: 200px;
  align-items: baseline;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

注意:该例使用不同的 font-size 来演示项目已按文本基线对齐:


1 2 3 4

align-content 属性

align-content 属性用于对齐弹性线。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

在这些例子中,我们使用 600 像素高的容器,并将 flex-wrap 属性设置为 wrap,以便更好地演示 align-content 属性。

实例

space-between 值显示的弹性线之间有相等的间距:

.flex-container {
  display: flex;
  height: 600px;
  flex-wrap: wrap;
  align-content: space-between;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

space-around 值显示弹性线在其之前、之间和之后带有空格:

.flex-container {
  display: flex;
  height: 600px;
  flex-wrap: wrap;
  align-content: space-around;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

stretch 值拉伸弹性线以占据剩余空间(默认):

.flex-container {
  display: flex;
  height: 600px;
  flex-wrap: wrap;
  align-content: stretch;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

center 值在容器中间显示弹性线:

.flex-container {
  display: flex;
  height: 600px;
  flex-wrap: wrap;
  align-content: center;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

flex-start 值在容器开头显示弹性线:

.flex-container {
  display: flex;
  height: 600px;
  flex-wrap: wrap;
  align-content: flex-start;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

flex-end 值在容器的末尾显示弹性线:

.flex-container {
  display: flex;
  height: 600px;
  flex-wrap: wrap;
  align-content: flex-end;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

完美的居中

在下面的例子中,我们会解决一个非常常见的样式问题:完美居中。

解决方案:将 justify-contentalign-items 属性设置为居中,然后 flex 项目将完美居中:

实例

.flex-container {
  display: flex;
  height: 300px;
  justify-content: center;
  align-items: center;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

子元素(项目)

flex 容器的直接子元素会自动成为弹性(flex)项目。

1 2 3 4

上面的元素代表一个灰色 flex 容器内的四个蓝色 flex 项目。

实例

1
2
3
4
运行实例 »

点击 "运行实例" 按钮查看在线实例

用于弹性项目的属性有:

  • order
  • flex-grow
  • flex-shrink
  • flex-basis
  • flex
  • align-self

order 属性

order 属性规定 flex 项目的顺序。

1 2 3 4

代码中的首个 flex 项目不必在布局中显示为第一项。

order 值必须是数字,默认值是 0。

实例

order 属性可以改变 flex 项目的顺序:

1
2
3
4
运行实例 »

点击 "运行实例" 按钮查看在线实例

flex-grow 属性

flex-grow 属性规定某个 flex 项目相对于其余 flex 项目将增长多少。

1 2 3

该值必须是数字,默认值是 0。

实例

使第三个弹性项目的增长速度比其他弹性项目快八倍:

1
2
3
运行实例 »

点击 "运行实例" 按钮查看在线实例

flex-shrink 属性

flex-shrink 属性规定某个 flex 项目相对于其余 flex 项目将收缩多少。

1 2 3 4 5 6 7 8 9

该值必须是数字,默认值是 0。

实例

不要让第三个弹性项目收缩得与其他弹性项目一样多:

1
2
3
4
5
6
7
8
9
10
运行实例 »

点击 "运行实例" 按钮查看在线实例

flex-basis 属性

flex-basis 属性规定 flex 项目的初始长度。

1 2 3 4

实例

将第三个弹性项目的初始长度设置为 200 像素:

1
2
3
4
运行实例 »

点击 "运行实例" 按钮查看在线实例

flex 属性

flex 属性是 flex-grow、flex-shrink 和 flex-basis 属性的简写属性。

实例

使第三个弹性项目不可增长(0),不可收缩(0),且初始长度为 200 像素:

1
2
3
4
运行实例 »

点击 "运行实例" 按钮查看在线实例

align-self 属性

align-self 属性规定弹性容器内所选项目的对齐方式。

align-self 属性将覆盖容器的 align-items 属性所设置的默认对齐方式。

1 2 3 4

在这些例子中,我们使用 200 像素高的容器,以便更好地演示 align-self 属性:

实例

把第三个弹性项目对齐到容器的中间:

1
2
3
4
运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

将第二个弹性项目在容器顶部对齐,将第三个弹性项目在容器底部对齐:

1
2
3
4
运行实例 »

点击 "运行实例" 按钮查看在线实例

使用 Flexbox 的响应式图库

使用 flexbox 创建响应式图像库,该图像库根据屏幕大小在四幅、两幅或全宽图像之间变化:

运行实例 »

点击 "运行实例" 按钮查看在线实例

使用 Flexbox 的响应式网站

使用 flexbox 创建响应式网站,其中包含弹性导航栏和弹性内容:

运行实例 »

点击 "运行实例" 按钮查看在线实例

CSS Flexbox 属性

下表列出了与 flexbox 一起使用的 CSS 属性:

属性 描述
display 规定用于 HTML 元素的盒类型。
flex-direction 规定弹性容器内的弹性项目的方向。
justify-content 当弹性项目没有用到主轴上的所有可用空间时,水平对齐这些项目。
align-items 当弹性项目没有用到主轴上的所有可用空间时,垂直对齐这些项。
flex-wrap 规定弹性项目是否应该换行,若一条 flex 线上没有足够的空间容纳它们。
align-content 修改 flex-wrap 属性的行为。与 align-items 相似,但它不对齐弹性项目,而是对齐 flex 线。
flex-flow flex-direction 和 flex-wrap 的简写属性。
order 规定弹性项目相对于同一容器内其余弹性项目的顺序。
align-self 用于弹性项目。覆盖容器的 align-items 属性。
flex flex-grow、flex-shrink 以及 flex-basis 属性的简写属性。

相关

视频

RELATED VIDEOS

更多

免费

Web前端开发极速入门
初级 Web前端开发极速入门

219920次学习

收藏

免费

前端入门_HTML5
初级 前端入门_HTML5

616946次学习

收藏

免费

30分钟学会网站布局
初级 30分钟学会网站布局

238440次学习

收藏

免费

CSS视频教程-玉女心经版
初级 CSS视频教程-玉女心经版

393054次学习

收藏

免费

独孤九贱(1)_HTML5视频教程

免费

独孤九贱(6)_jQuery视频教程

免费

独孤九贱(7)_Bootstrap视频教程

免费

独孤九贱(2)_CSS视频教程
初级 独孤九贱(2)_CSS视频教程

229605次学习

收藏

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

70.9万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号