Inspire - Capo Productions
note
Flex 布局(Flexible Box Layout,简称 Flexbox)是 CSS3 中的一种布局模型,旨在使布局更简单和灵活。它特别适合于一维布局(即在一个方向上排列元素),可以很方便地处理不同尺寸的元素和响应式设计。下面是 Flexbox 的基本概念和常用属性概览。
基本概念
- 容器:使用
display: flex或display: inline-flex来创建 Flex 容器。 - 项目:容器内部的直接子元素称为 Flex 项目。
容器属性
flex-direction:定义主轴方向。
row(默认):从左到右row-reverse:从右到左column:从上到下column-reverse:从下到上
css.container { display: flex; flex-direction: row; }flex-wrap:定义是否换行。
nowrap(默认):不换行wrap:换行wrap-reverse:反向换行
css.container { flex-wrap: wrap; }justify-content:定义主轴上的对齐方式。
flex-start:起始对齐flex-end:结束对齐center:居中对齐space-between:均匀分配,首尾对齐space-around:均匀分配,间隔相等
css.container { justify-content: center; }align-items:定义交叉轴上的对齐方式。
stretch(默认):拉伸以填满容器flex-start:起始对齐flex-end:结束对齐center:居中对齐baseline:按文本基线对齐
css.container { align-items: center; }align-content:多行对齐(在有换行的情况下使用)。
- 类似于
align-items,但用于多行。
- 类似于
项目属性
flex-grow:定义项目的放大比例,默认值为 0。
css.item { flex-grow: 1; }flex-shrink:定义项目的缩小比例,默认值为 1。
css.item { flex-shrink: 0; }flex-basis:定义项目的初始大小,可以是长度单位(如 px、em)或
auto。css.item { flex-basis: 200px; }flex:是
flex-grow,flex-shrink,flex-basis的简写属性。css.item { flex: 1 1 200px; }align-self:允许单个项目覆盖容器的
align-items属性。css.item { align-self: flex-end; }
示例
以下是一个简单的 Flexbox 布局示例:
html
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>css
.container {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
height: 100px;
}
.item {
background-color: lightblue;
padding: 20px;
flex: 1;
margin: 5px;
}总结
Flexbox 使得复杂的布局变得简单且灵活,尤其适合于响应式设计。通过组合不同的属性,你可以很轻松地实现各种布局需求。