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 属性的简写属性。 |