CSS3 Flexbox
1
2
3
4
5
6
7
8
CSS Flexbox 布局模块
在 Flexbox 布局模块(问世)之前,可用的布局模式有以下四种:
- 块(Block),用于网页中的部分(节)
- 行内(Inline),用于文本
- 表,用于二维表数据
- 定位,用于元素的明确位置
弹性框布局模块,可以更轻松地设计灵活的响应式布局结构,而无需使用浮动或定位。
浏览器支持
所有现代浏览器均支持 flexbox 属性。
| 29.0 | 11.0 | 22.0 | 10 | 48 |
Flexbox 元素
如需开始使用 Flexbox 模型,您需要首先定义 Flex 容器。
1
2
3
上面的元素表示一个带有三个 flex 项目的 flex 容器(蓝色区域)。
含有三个 flex 项目的 flex 容器:
<!DOCTYPE html><html><head><style>.flex-container {display: flex;background-color: DodgerBlue;}.flex-container > div {background-color: #f1f1f1;margin: 10px;padding: 20px;font-size: 30px;}</style></head><body><div class="flex-container"><div>1</div><div>2</div><div>3</div></div><p>弹性布局中必须有一个 <em>display</em> 属性设置为 <em>flex</em> 的父元素。</p><p>弹性容器的直接子元素会自动成为弹性项目。</p></body></html>
父元素(容器)
下一章,我们开始讲解 CSS Flex Container,父元素的用法。
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 属性的简写属性。 |