Skip to content

Tailwind CSS 间距

在设计中,一致且和谐的间距是创造专业、美观的 UI 的关键。Tailwind 提供了一个全面且可定制的间距系统,通过 paddingmargin 工具类来控制元素内外的空间。

概念:间距比例尺

Tailwind 的间距系统基于一个数字比例尺,默认情况下,1 单位等于 0.25rem (或 4px)。所以,p-4 意味着 padding: 1rem; (4 * 0.25rem),m-8 意味着 margin: 2rem; (8 * 0.25rem)。

这个比例尺是完全可定制的,你可以在 tailwind.config.jstheme.spacingtheme.extend.spacing 中修改它。

Padding

Padding 用于控制元素内部的空间,即内容与边框之间的距离。

  • p-{size}: 在所有四个方向上应用内边距。

    • p-0: padding: 0px;
    • p-4: padding: 1rem;
    • p-8: padding: 2rem;
  • px-{size}: 只在水平方向(左和右)应用内边距。

    • px-6: padding-left: 1.5rem; padding-right: 1.5rem;
  • py-{size}: 只在垂直方向(上和下)应用内边距。

    • py-2: padding-top: 0.5rem; padding-bottom: 0.5rem;
  • pt-{size}, pr-{size}, pb-{size}, pl-{size}: 分别控制上、右、下、左四个方向的内边距。

    • pt-6: padding-top: 1.5rem;
    • pl-10: padding-left: 2.5rem;
html
<div class="pt-6 pb-8 pl-4 pr-2 ...">
  <!-- ... -->
</div>

Margin

Margin 用于控制元素外部的空间,即元素边框与其他元素之间的距离。

Margin 的工具类与 Padding 完全相同,只是将 p 换成了 m

  • m-{size}: 在所有四个方向上应用外边距。
  • mx-{size}: 在水平方向应用外边距。
  • my-{size}: 在垂直方向应用外边距。
  • mt-{size}, mr-{size}, mb-{size}, ml-{size}: 分别控制上、右、下、左四个方向的外边距。

水平居中

一个非常常见的用例是使用 mx-auto 来使一个固定宽度的块级元素水平居中。

html
<div class="w-96 mx-auto bg-white shadow-md rounded-lg">
  <!-- 这个卡片将会水平居中 -->
</div>

负外边距

Tailwind 也支持负外边距,只需在尺寸前加上一个负号 -。这在创建重叠元素时非常有用。

html
<div class="flex">
  <div class="w-16 h-16 bg-red-500 rounded-full"></div>
  <div class="-ml-4 w-16 h-16 bg-blue-500 rounded-full"></div>
</div>

元素之间的间距

当你有一组元素(例如在一个 Flexbox 或 Grid 容器中)并希望它们之间有均匀的间距时,你有两个主要选择:

  1. 使用 gap: 如果你使用的是 Flexbox 或 Grid 布局,gap-{size} 是最简单、最推荐的方式。

    html
    <div class="flex gap-4">
      <!-- ... -->
    </div>
  2. 使用 space-between: 如果你不能使用 gap,可以使用 space-x-{size}space-y-{size} 工具类。它会智能地在子元素之间添加外边距,但不会在第一个或最后一个元素上添加。

    html
    <div class="flex flex-col space-y-4">
      <div>01</div>
      <div>02</div>
      <div>03</div>
    </div>

    这会给第二个和第三个 div 添加 margin-top,从而在它们之间创建空间。

通过熟练运用这些间距工具,你可以精确地控制布局的节奏和呼吸感,创造出清晰、平衡的用户界面。