间距系统基础
1. 间距刻度
Tailwind CSS 提供了一个基于 0.25rem(4px)递增的间距系统:
// tailwind.config.js 默认间距配置
module.exports = {
theme: {
spacing: {
'0': '0',
'1': '0.25rem', // 4px
'2': '0.5rem', // 8px
'3': '0.75rem', // 12px
'4': '1rem', // 16px
'5': '1.25rem', // 20px
'6': '1.5rem', // 24px
'8': '2rem', // 32px
'10': '2.5rem', // 40px
'12': '3rem', // 48px
'16': '4rem', // 64px
// ... 更多间距
}
}
}
2. 间距工具类
<!-- 外边距(margin)使用 -->
<div class="m-4">所有方向外边距</div>
<div class="mx-4">水平外边距</div>
<div class="my-4">垂直外边距</div>
<div class="mt-4">上外边距</div>
<div class="mr-4">右外边距</div>
<div class="mb-4">下外边距</div>
<div class="ml-4">左外边距</div>
<!-- 内边距(padding)使用 -->
<div class="p-4">所有方向内边距</div>
<div class="px-4">水平内边距</div>
<div class="py-4">垂直内边距</div>
<div class="pt-4">上内边距</div>
<div class="pr-4">右内边距</div>
<div class="pb-4">下内边距</div>
<div class="pl-4">左内边距</div>
布局控制
1. 容器与宽度
<!-- 容器 -->
<div class="container mx-auto px-4">
<!-- 居中的内容容器 -->
</div>
<!-- 宽度控制 -->
<div class="w-full">100%宽度</div>
<div class="w-1/2">50%宽度</div>
<div class="w-screen">视窗宽度</div>
<div class="max-w-xl">最大宽度</div>
2. 高度控制
<!-- 固定高度 -->
<div class="h-64">固定高度</div>
<!-- 最小高度 -->
<div class="min-h-screen">最小视窗高度</div>
<!-- 自适应高度 -->
<div class="h-auto">自动高度</div>
<!-- 百分比高度 -->
<div class="h-full">100%高度</div>
3. 空间分配
<!-- 使用间距工具类控制元素间距 -->
<div class="space-y-4">
<div>第一个元素</div>
<div>第二个元素</div>
<div>第三个元素</div>
</div>
<!-- 水平间距 -->
<div class="space-x-4">
<span>元素1</span>
<span>元素2</span>
<span>元素3</span>
</div>
高级布局技巧
1. 弹性盒布局(Flexbox)
<!-- 基础 Flex 布局 -->
<div class="flex items-center justify-between">
<div>左侧内容</div>
<div>右侧内容</div>
</div>
<!-- Flex 方向和换行 -->
<div class="flex flex-col md:flex-row flex-wrap">
<div class="w-full md:w-1/3">列 1</div>
<div class="w-full md:w-1/3">列 2</div>
<div class="w-full md:w-1/3">列 3</div>
</div>
2. 网格布局(Grid)
<!-- 基础网格布局 -->
<div class="grid grid-cols-3 gap-4">
<div>网格项 1</div>
<div>网格项 2</div>
<div>网格项 3</div>
</div>
<!-- 响应式网格 -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
<!-- 网格内容 -->
</div>
3. 定位控制
<!-- 相对定位 -->
<div class="relative">
<div class="absolute top-0 right-0">
定位元素
</div>
</div>
<!-- 固定定位 -->
<div class="fixed bottom-0 left-0 right-0">
固定在底部
</div>
常见布局模式
1. 卡片布局
<!-- 卡片网格布局 -->
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 p-6">
<!-- 卡片 1 -->
<div class="bg-white rounded-lg shadow-lg p-6">
<h3 class="text-xl mb-4">卡片标题</h3>
<p class="text-gray-600">卡片内容</p>
</div>
<!-- 更多卡片... -->
</div>
2. 边栏布局
<!-- 响应式边栏布局 -->
<div class="flex flex-col md:flex-row">
<!-- 侧边栏 -->
<div class="w-full md:w-64 p-6 bg-gray-100">
侧边栏内容
</div>
<!-- 主内容区 -->
<div class="flex-1 p-6">
主要内容
</div>
</div>
3. 叠加布局
<!-- 叠加布局 -->
<div class="relative">
<!-- 背景图片 -->
<img src="background.jpg" class="w-full h-64 object-cover">
<!-- 叠加内容 -->
<div class="absolute inset-0 bg-black bg-opacity-50 flex items-center justify-center">
<h2 class="text-white text-3xl">叠加标题</h2>
</div>
</div>
响应式间距
1. 断点控制
<!-- 响应式间距 -->
<div class="p-4 md:p-6 lg:p-8">
<!-- 在不同屏幕尺寸下使用不同的内边距 -->
</div>
<!-- 响应式外边距 -->
<div class="mx-4 md:mx-8 lg:mx-16">
<!-- 在不同屏幕尺寸下使用不同的水平外边距 -->
</div>
2. 动态间距
<!-- 动态间距应用 -->
<div class="space-y-4 md:space-y-6 lg:space-y-8">
<div>第一项</div>
<div>第二项</div>
<div>第三项</div>
</div>
最佳实践
1. 间距使用建议
- 使用一致的间距刻度
- 避免使用任意值
- 保持响应式一致性
2. 布局规范
- 使用语义化容器
- 保持布局层级清晰
- 合理使用响应式类
3. 性能优化
- 避免过度嵌套
- 合理使用容器查询
- 优化重排重绘
总结
Tailwind CSS 的间距和布局控制系统提供了:
- 完整的间距刻度系统
- 灵活的布局工具类
- 强大的响应式能力
- 丰富的布局模式支持
通过合理运用这些特性,我们可以:
- 构建一致的页面布局
- 实现灵活的响应式设计
- 提高开发效率
- 确保视觉体验的一致性
在实际开发中,应该根据设计规范建立统一的间距和布局标准,并在团队中保持一致的使用方式。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。