Tailwind CSS 间距 #

间距值系统 #

Tailwind CSS 使用统一的间距比例系统,基于 4px 的倍数:

类名后缀 像素
0 0 0px
px 1px 1px
0.5 0.125rem 2px
1 0.25rem 4px
1.5 0.375rem 6px
2 0.5rem 8px
2.5 0.625rem 10px
3 0.75rem 12px
3.5 0.875rem 14px
4 1rem 16px
5 1.25rem 20px
6 1.5rem 24px
7 1.75rem 28px
8 2rem 32px
9 2.25rem 36px
10 2.5rem 40px
11 2.75rem 44px
12 3rem 48px
14 3.5rem 56px
16 4rem 64px
20 5rem 80px
24 6rem 96px
28 7rem 112px
32 8rem 128px
36 9rem 144px
40 10rem 160px
44 11rem 176px
48 12rem 192px
52 13rem 208px
56 14rem 224px
60 15rem 240px
64 16rem 256px
72 18rem 288px
80 20rem 320px
96 24rem 384px

内边距(Padding) #

四边内边距 #

html
<!-- 所有方向 -->
<div class="p-4">四边内边距 1rem</div>
<div class="p-8">四边内边距 2rem</div>

<!-- 无内边距 -->
<div class="p-0">无内边距</div>

水平内边距 #

html
<!-- 左右内边距 -->
<div class="px-4">左右内边距 1rem</div>
<div class="px-8">左右内边距 2rem</div>

垂直内边距 #

html
<!-- 上下内边距 -->
<div class="py-4">上下内边距 1rem</div>
<div class="py-8">上下内边距 2rem</div>

单边内边距 #

html
<!-- 上内边距 -->
<div class="pt-4">上内边距 1rem</div>

<!-- 右内边距 -->
<div class="pr-4">右内边距 1rem</div>

<!-- 下内边距 -->
<div class="pb-4">下内边距 1rem</div>

<!-- 左内边距 -->
<div class="pl-4">左内边距 1rem</div>

逻辑属性 #

html
<!-- 行方向(左右,RTL 友好) -->
<div class="ps-4">起始方向内边距</div>
<div class="pe-4">结束方向内边距</div>

<!-- 块方向(上下) -->
<div class="bs-4">块起始内边距</div>
<div class="be-4">块结束内边距</div>

外边距(Margin) #

四边外边距 #

html
<!-- 所有方向 -->
<div class="m-4">四边外边距 1rem</div>
<div class="m-8">四边外边距 2rem</div>

<!-- 无外边距 -->
<div class="m-0">无外边距</div>

水平外边距 #

html
<!-- 左右外边距 -->
<div class="mx-4">左右外边距 1rem</div>
<div class="mx-auto">水平居中</div>

垂直外边距 #

html
<!-- 上下外边距 -->
<div class="my-4">上下外边距 1rem</div>

单边外边距 #

html
<!-- 上外边距 -->
<div class="mt-4">上外边距 1rem</div>

<!-- 右外边距 -->
<div class="mr-4">右外边距 1rem</div>

<!-- 下外边距 -->
<div class="mb-4">下外边距 1rem</div>

<!-- 左外边距 -->
<div class="ml-4">左外边距 1rem</div>

负外边距 #

html
<!-- 负值外边距 -->
<div class="-mt-4">向上偏移 1rem</div>
<div class="-mr-4">向右偏移 1rem</div>
<div class="-mb-4">向下偏移 1rem</div>
<div class="-ml-4">向左偏移 1rem</div>
<div class="-mx-4">左右负外边距</div>
<div class="-my-4">上下负外边距</div>
<div class="-m-4">四边负外边距</div>

自动外边距 #

html
<!-- 水平居中 -->
<div class="mx-auto w-64">水平居中</div>

<!-- 推向一侧 -->
<div class="ml-auto">推向右侧</div>
<div class="mr-auto">推向左侧</div>

<!-- 垂直居中(需要 flex) -->
<div class="my-auto">垂直居中</div>

逻辑属性 #

html
<!-- 行方向(RTL 友好) -->
<div class="ms-4">起始方向外边距</div>
<div class="me-4">结束方向外边距</div>
<div class="ms-auto">推向结束方向</div>

<!-- 块方向 -->
<div class="mt-4">块起始外边距</div>
<div class="mb-4">块结束外边距</div>

间隙(Gap) #

用于 Flexbox 和 Grid 容器的子元素间距。

统一间隙 #

html
<!-- 所有方向间隙 -->
<div class="flex gap-4">
  <div>项目 1</div>
  <div>项目 2</div>
  <div>项目 3</div>
</div>

<div class="grid grid-cols-3 gap-4">
  <div>项目 1</div>
  <div>项目 2</div>
  <div>项目 3</div>
</div>

行间隙 #

html
<!-- 行之间间隙 -->
<div class="grid grid-cols-2 gap-x-4">
  <div>项目 1</div>
  <div>项目 2</div>
  <div>项目 3</div>
  <div>项目 4</div>
</div>

列间隙 #

html
<!-- 列之间间隙 -->
<div class="grid grid-cols-2 gap-y-4">
  <div>项目 1</div>
  <div>项目 2</div>
  <div>项目 3</div>
  <div>项目 4</div>
</div>

空间-between(Space Between) #

用于相邻兄弟元素之间的间距。

水平间距 #

html
<!-- 子元素之间水平间距 -->
<div class="flex space-x-4">
  <div>项目 1</div>
  <div>项目 2</div>
  <div>项目 3</div>
</div>

垂直间距 #

html
<!-- 子元素之间垂直间距 -->
<div class="flex flex-col space-y-4">
  <div>项目 1</div>
  <div>项目 2</div>
  <div>项目 3</div>
</div>

反向间距 #

html
<!-- 反向布局时使用 space-x-reverse -->
<div class="flex flex-row-reverse space-x-4 space-x-reverse">
  <div>项目 1</div>
  <div>项目 2</div>
  <div>项目 3</div>
</div>

space-between vs gap #

html
<!-- space-between:使用 margin -->
<div class="flex space-x-4">
  <div>项目 1</div>  <!-- mr-4 -->
  <div>项目 2</div>  <!-- mr-4 -->
  <div>项目 3</div>  <!-- 无 margin -->
</div>

<!-- gap:使用 gap 属性 -->
<div class="flex gap-4">
  <div>项目 1</div>
  <div>项目 2</div>
  <div>项目 3</div>
</div>

分割线(Divide) #

用于相邻兄弟元素之间的分割线。

水平分割 #

html
<div class="divide-x divide-gray-200">
  <div class="px-4">项目 1</div>
  <div class="px-4">项目 2</div>
  <div class="px-4">项目 3</div>
</div>

垂直分割 #

html
<div class="divide-y divide-gray-200">
  <div class="py-4">项目 1</div>
  <div class="py-4">项目 2</div>
  <div class="py-4">项目 3</div>
</div>

分割线样式 #

html
<!-- 实线(默认) -->
<div class="divide-y divide-solid divide-gray-200">

<!-- 虚线 -->
<div class="divide-y divide-dashed divide-gray-200">

<!-- 点线 -->
<div class="divide-y divide-dotted divide-gray-200">

<!-- 无分割线 -->
<div class="divide-y divide-none">

分割线宽度 #

html
<div class="divide-y divide-2 divide-gray-200">
<div class="divide-y divide-4 divide-gray-200">

任意值 #

html
<!-- 任意内边距 -->
<div class="p-[13px]">自定义内边距</div>
<div class="px-[20px]">自定义水平内边距</div>

<!-- 任意外边距 -->
<div class="m-[10px]">自定义外边距</div>
<div class="mt-[2em]">自定义上外边距</div>

<!-- 任意间隙 -->
<div class="gap-[15px]">自定义间隙</div>

实战示例 #

卡片组件 #

html
<div class="p-6 bg-white rounded-lg shadow-md">
  <h3 class="text-lg font-semibold mb-2">卡片标题</h3>
  <p class="text-gray-600 mb-4">卡片内容描述</p>
  <button class="px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600">
    操作按钮
  </button>
</div>

导航栏 #

html
<nav class="px-6 py-4 bg-white shadow">
  <div class="flex items-center justify-between max-w-7xl mx-auto">
    <span class="text-xl font-bold">Logo</span>
    <div class="flex items-center space-x-6">
      <a href="#" class="hover:text-blue-500">首页</a>
      <a href="#" class="hover:text-blue-500">关于</a>
      <a href="#" class="hover:text-blue-500">联系</a>
    </div>
  </div>
</nav>

列表 #

html
<ul class="space-y-3">
  <li class="p-4 bg-gray-50 rounded">列表项 1</li>
  <li class="p-4 bg-gray-50 rounded">列表项 2</li>
  <li class="p-4 bg-gray-50 rounded">列表项 3</li>
</ul>

<!-- 或使用分割线 -->
<ul class="divide-y divide-gray-200">
  <li class="py-4">列表项 1</li>
  <li class="py-4">列表项 2</li>
  <li class="py-4">列表项 3</li>
</ul>

表单 #

html
<form class="space-y-4">
  <div>
    <label class="block mb-1 text-sm font-medium">用户名</label>
    <input class="w-full px-4 py-2 border rounded-lg">
  </div>
  <div>
    <label class="block mb-1 text-sm font-medium">密码</label>
    <input type="password" class="w-full px-4 py-2 border rounded-lg">
  </div>
  <button class="w-full py-2 bg-blue-500 text-white rounded-lg">
    登录
  </button>
</form>

页面布局 #

html
<div class="min-h-screen flex flex-col">
  <header class="py-4 px-6 bg-white shadow">
    头部
  </header>
  
  <main class="flex-1 py-8 px-6">
    <div class="max-w-7xl mx-auto">
      主内容
    </div>
  </main>
  
  <footer class="py-6 px-6 bg-gray-100">
    底部
  </footer>
</div>

重叠效果 #

html
<div class="relative">
  <div class="bg-blue-500 p-8">
    背景元素
  </div>
  <div class="bg-white p-6 shadow-lg -mt-4 mx-4 rounded-lg">
    重叠卡片
  </div>
</div>

下一步 #

掌握间距后,继续学习 尺寸 了解尺寸控制!

最后更新:2026-03-28