目录
- Flexbox 布局
- 1. 启用 Flexbox
- 2. 主轴方向
- 3. 交叉轴对齐方式
- 4. 主轴对齐方式
- 5. 包裹子元素的方式
- 6. 子元素 Flex 属性
- 综合示例
- Grid 布局
- 1. 启用 Grid
- 2. 定义列数
- 3. 列和行的定义
- 4. 列和行的间隔
- 5. 行和列的大小
- 6. 位置和对齐
- 综合示例
- 总结
查看 Tailwind CSS 的官方文档:Flexbox & Grid
在 Tailwind CSS 中,flex
和 grid
用于创建灵活的布局。以下是这两种布局的基本设置和常用类。
Flexbox 布局
1. 启用 Flexbox
<div className="flex"><!-- 子元素 -->
</div>
2. 主轴方向
flex-row
:水平排列(默认)。flex-row-reverse
:反向水平排列。flex-col
:垂直排列。flex-col-reverse
:反向垂直排列。
3. 交叉轴对齐方式
items-start
:在交叉轴起始位置对齐。items-center
:在交叉轴中间对齐。items-end
:在交叉轴末尾对齐.items-baseline
:在基线对齐。items-stretch
:默认值,子元素拉伸以填满容器。
4. 主轴对齐方式
justify-start
:在主轴起始位置对齐。justify-center
:在主轴中间对齐。justify-end
:在主轴末尾对齐。justify-between
:子元素均匀分布,首尾对齐。justify-around
:子元素均匀分布,两边留有空间。justify-evenly
:子元素均匀分布,间隔相同。
5. 包裹子元素的方式
<div className="flex flex-wrap"><!-- 子元素 -->
</div>
6. 子元素 Flex 属性
flex-1
:使子元素占据剩余空间。flex-none
:不允许子元素缩放。
综合示例
<div className="flex justify-between items-center"><div className="flex-1">项1</div><div className="flex-1">项2</div><div className="flex-1">项3</div>
</div>
Grid 布局
1. 启用 Grid
<div className="grid"><!-- 子元素 -->
</div>
2. 定义列数
<div className="grid grid-cols-3"><!-- 子元素 -->
</div>
3. 列和行的定义
grid-cols-{n}
:定义列数,例如grid-cols-2
、grid-cols-4
。grid-rows-{n}
:定义行数。
4. 列和行的间隔
<div className="grid gap-4"><!-- 子元素 -->
</div>
5. 行和列的大小
<div className="grid grid-cols-3 grid-rows-2"><div className="col-span-2">占据两列</div><div className="row-span-2">占据两行</div>
</div>
6. 位置和对齐
items-start
、items-center
、items-end
:在交叉轴上对齐。justify-start
、justify-center
、justify-end
:在主轴上对齐。
综合示例
<div className="grid grid-cols-3 gap-4"><div className="bg-red-500">项1</div><div className="bg-green-500">项2</div><div className="bg-blue-500">项3</div><div className="bg-yellow-500 col-span-2">占据两列</div>
</div>
总结
属性 | Flex | Grid |
---|---|---|
启用布局 | flex | grid |
方向 | flex-row , flex-col | grid-cols-{n} , grid-rows-{n} |
对齐 | justify-* , items-* | justify-* , items-* |
间隔 | gap-* | gap-* |
包裹 | flex-wrap | - |
这两种布局各有优缺点,选择合适的布局方式可以帮助你更好地实现设计需求。