--- title: CSS 弹性盒子布局 slug: Web/CSS/CSS_Flexible_Box_Layout tags: - CSS - CSS Flexible Boxes - CSS Reference - CSS3布模式 - Overview - TopicStub - 弹性盒子 - 弹性盒子模型 - 盒子模型 translation_of: Web/CSS/CSS_Flexible_Box_Layout ---
{{CSSRef}}
CSS 弹性盒子布局是 CSS 的模块之一,定义了一种针对用户界面设计而优化的 CSS 盒子模型。在弹性布局模型中,弹性容器的子元素可以在任何方向上排布,也可以“弹性伸缩”其尺寸,既可以增加尺寸以填满未使用的空间,也可以收缩尺寸以避免父元素溢出。子元素的水平对齐和垂直对齐都能很方便的进行操控。通过嵌套这些框(水平框在垂直框内,或垂直框在水平框内)可以在两个维度上构建布局。
在以下示例中,已将容器设置为 display: flex
,这意味着三个子项成为弹性项。justify-content
的值已设置为 space-between
,以便在主轴上均匀地分隔项目。在每个项目之间放置等量的空间,左侧和右侧项目与Flex容器的边缘齐平。你还能看到项目在十字轴上拉伸,因为 align-items
的默认值为 stretch
。这些项目伸展到Flex容器的高度,使它们看起来都像最高的项目一样高。
{{EmbedGHLiveSample("css-examples/flexbox/basics/simple-example.html", '100%', 500)}}
属性 align-content
、align-self
、align-items
和 justify-content
最初出现在 Flexbox 规范中,但现在在Box Alignment中定义,Flexbox 规范引用了 Box Alignment 规范以获取最新定义。Box Alignment中还定义了其他对齐属性。
规范 | 状态 | 注解 |
---|---|---|
{{ SpecName('CSS3 Flexbox') }} | {{ Spec2('CSS3 Flexbox') }} | 初始定义。 |
{{CompatibilityTable()}}
特性 | Firefox (Gecko) | Chrome | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
基础支持 | {{CompatGeckoDesktop("20.0")}} | 21.0{{property_prefix("-webkit")}} 29.0 |
10.0{{property_prefix("-ms")}} 11.0 |
12.10 | 6.1{{property_prefix("-webkit")}} |
特性 | Firefox Mobile (Gecko) | Android | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
基础支持 | {{CompatVersionUnknown()}} | 4.4 | 11 | 12.10 | 7.1{{property_prefix("-webkit")}} |