1. 间距
  2. 间距

Quick reference

属性
space-x-0 > * + *margin-left: 0px;
space-y-0 > * + *margin-top: 0px;
space-x-0.5 > * + *margin-left: 0.125rem; /* 2px */
space-y-0.5 > * + *margin-top: 0.125rem; /* 2px */
space-x-1 > * + *margin-left: 0.25rem; /* 4px */
space-y-1 > * + *margin-top: 0.25rem; /* 4px */
space-x-1.5 > * + *margin-left: 0.375rem; /* 6px */
space-y-1.5 > * + *margin-top: 0.375rem; /* 6px */
space-x-2 > * + *margin-left: 0.5rem; /* 8px */
space-y-2 > * + *margin-top: 0.5rem; /* 8px */
space-x-2.5 > * + *margin-left: 0.625rem; /* 10px */
space-y-2.5 > * + *margin-top: 0.625rem; /* 10px */
space-x-3 > * + *margin-left: 0.75rem; /* 12px */
space-y-3 > * + *margin-top: 0.75rem; /* 12px */
space-x-3.5 > * + *margin-left: 0.875rem; /* 14px */
space-y-3.5 > * + *margin-top: 0.875rem; /* 14px */
space-x-4 > * + *margin-left: 1rem; /* 16px */
space-y-4 > * + *margin-top: 1rem; /* 16px */
space-x-5 > * + *margin-left: 1.25rem; /* 20px */
space-y-5 > * + *margin-top: 1.25rem; /* 20px */
space-x-6 > * + *margin-left: 1.5rem; /* 24px */
space-y-6 > * + *margin-top: 1.5rem; /* 24px */
space-x-7 > * + *margin-left: 1.75rem; /* 28px */
space-y-7 > * + *margin-top: 1.75rem; /* 28px */
space-x-8 > * + *margin-left: 2rem; /* 32px */
space-y-8 > * + *margin-top: 2rem; /* 32px */
space-x-9 > * + *margin-left: 2.25rem; /* 36px */
space-y-9 > * + *margin-top: 2.25rem; /* 36px */
space-x-10 > * + *margin-left: 2.5rem; /* 40px */
space-y-10 > * + *margin-top: 2.5rem; /* 40px */
space-x-11 > * + *margin-left: 2.75rem; /* 44px */
space-y-11 > * + *margin-top: 2.75rem; /* 44px */
space-x-12 > * + *margin-left: 3rem; /* 48px */
space-y-12 > * + *margin-top: 3rem; /* 48px */
space-x-14 > * + *margin-left: 3.5rem; /* 56px */
space-y-14 > * + *margin-top: 3.5rem; /* 56px */
space-x-16 > * + *margin-left: 4rem; /* 64px */
space-y-16 > * + *margin-top: 4rem; /* 64px */
space-x-20 > * + *margin-left: 5rem; /* 80px */
space-y-20 > * + *margin-top: 5rem; /* 80px */
space-x-24 > * + *margin-left: 6rem; /* 96px */
space-y-24 > * + *margin-top: 6rem; /* 96px */
space-x-28 > * + *margin-left: 7rem; /* 112px */
space-y-28 > * + *margin-top: 7rem; /* 112px */
space-x-32 > * + *margin-left: 8rem; /* 128px */
space-y-32 > * + *margin-top: 8rem; /* 128px */
space-x-36 > * + *margin-left: 9rem; /* 144px */
space-y-36 > * + *margin-top: 9rem; /* 144px */
space-x-40 > * + *margin-left: 10rem; /* 160px */
space-y-40 > * + *margin-top: 10rem; /* 160px */
space-x-44 > * + *margin-left: 11rem; /* 176px */
space-y-44 > * + *margin-top: 11rem; /* 176px */
space-x-48 > * + *margin-left: 12rem; /* 192px */
space-y-48 > * + *margin-top: 12rem; /* 192px */
space-x-52 > * + *margin-left: 13rem; /* 208px */
space-y-52 > * + *margin-top: 13rem; /* 208px */
space-x-56 > * + *margin-left: 14rem; /* 224px */
space-y-56 > * + *margin-top: 14rem; /* 224px */
space-x-60 > * + *margin-left: 15rem; /* 240px */
space-y-60 > * + *margin-top: 15rem; /* 240px */
space-x-64 > * + *margin-left: 16rem; /* 256px */
space-y-64 > * + *margin-top: 16rem; /* 256px */
space-x-72 > * + *margin-left: 18rem; /* 288px */
space-y-72 > * + *margin-top: 18rem; /* 288px */
space-x-80 > * + *margin-left: 20rem; /* 320px */
space-y-80 > * + *margin-top: 20rem; /* 320px */
space-x-96 > * + *margin-left: 24rem; /* 384px */
space-y-96 > * + *margin-top: 24rem; /* 384px */
space-x-px > * + *margin-left: 1px;
space-y-px > * + *margin-top: 1px;
space-y-reverse > * + *--tw-space-y-reverse: 1;
space-x-reverse > * + *--tw-space-x-reverse: 1;

基本用法

¥Basic usage

在子级之间添加水平空间

¥Add horizontal space between children

使用 space-x-* 工具来控制元素之间的水平间距。

¥Use the space-x-* utilities to control the horizontal space between elements.

01
02
03
<div class="flex space-x-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>

在子级之间添加垂直空间

¥Add vertical space between children

使用 space-y-* 工具来控制元素之间的垂直空间。

¥Use the space-y-* utilities to control the vertical space between elements.

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

反转子顺序

¥Reversing children order

如果你的元素顺序相反(例如使用 flex-row-reverseflex-col-reverse),请使用 space-x-reversespace-y-reverse 工具确保将空格添加到每个元素的正确一侧。

¥If your elements are in reverse order (using say flex-row-reverse or flex-col-reverse), use the space-x-reverse or space-y-reverse utilities to ensure the space is added to the correct side of each element.

01
02
03
<div class="flex flex-row-reverse space-x-4 space-x-reverse ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>

使用负值

¥Using negative values

要使用负空格值,请在类名前加上破折号以将其转换为负值。

¥To use a negative space value, prefix the class name with a dash to convert it to a negative value.

<div class="flex -space-x-4 ...">
  <!-- ... -->
</div>

限制

¥Limitations

这些工具实际上只是为组中除第一项之外的所有项添加边距的快捷方式,并非旨在处理复杂情况,例如网格、环绕布局或子项在复杂环境中渲染的情况 自定义顺序而不是它们的自然 DOM 顺序。

¥These utilities are really just a shortcut for adding margin to all-but-the-first-item in a group, and aren’t designed to handle complex cases like grids, layouts that wrap, or situations where the children are rendered in a complex custom order rather than their natural DOM order.

对于这些情况,最好尽可能使用 差距实用工具,或者为父元素上具有匹配负边距的每个元素添加边距:

¥For those situations, it’s better to use the gap utilities when possible, or add margin to every element with a matching negative margin on the parent:

<div class="flow-root">
  <div class="-m-2 flex flex-wrap">
    <div class="m-2 ..."></div>
    <div class="m-2 ..."></div>
    <div class="m-2 ..."></div>
  </div>
</div>

不能与 divide 工具配对

¥Cannot be paired with divide utilities

space-* 工具并非设计用于与 划分实用工具 一起使用。对于这些情况,请考虑向子项添加边距/填充工具。

¥The space-* utilities are not designed to work together with the divide utilities. For those situations, consider adding margin/padding utilities to the children instead.


有条件地应用

悬停、聚焦和其他状态

Tailwind 允许你使用变体修饰符在不同状态下有条件地应用工具类。例如,使用hover:space-x-8 仅在 hover 时应用 space-x-8 工具。

<div class="flex space-x-2 hover:space-x-8">
  <!-- ... -->
</div>

有关所有可用状态修饰符的完整列表,请查看悬停、聚焦、以及其他状态 文档。

断点和媒体查询

你还可以使用变体修饰符来定位媒体查询,例如响应式断点、暗黑模式、首选减少运动等。例如,使用 md:space-x-8 仅在中等屏幕尺寸及以上时应用 space-x-8 工具。

<div class="flex space-x-2 md:space-x-8">
  <!-- ... -->
</div>

要了解更多信息,请查看有关 响应式设计暗黑模式、以及 其他媒体查询修饰符 的文档。


使用自定义值

¥Using custom values

自定义主题

¥Customizing your theme

默认情况下,Tailwind 的空间比例使用 默认间距比例。你可以通过编辑 tailwind.config.js 文件中的 theme.spacingtheme.extend.spacing 来自定义间距比例。

¥By default, Tailwind’s space scale uses the default spacing scale. You can customize your spacing scale by editing theme.spacing or theme.extend.spacing in your tailwind.config.js file.

tailwind.config.js
module.exports = {
  theme: {
    extend: {
      spacing: {
        '5px': '5px',
      }
    }
  }
}

或者,你可以通过编辑 tailwind.config.js 文件中的 theme.spacetheme.extend.space 来自定义空间比例。

¥Alternatively, you can customize just the space scale by editing theme.space or theme.extend.space in your tailwind.config.js file.

tailwind.config.js
module.exports = {
  theme: {
    extend: {
      space: {
        '5px': '5px',
      }
    }
  }
}

主题定制 文档中了解有关自定义默认主题的更多信息。

¥Learn more about customizing the default theme in the theme customization documentation.

任意值

¥Arbitrary values

如果你需要使用一次性的 space 值,而该值没有必要包含在你的主题中,请使用方括号动态生成属性,使用任意值。

<div class="space-y-[5px]">
  <!-- ... -->
</div>

任意值 文档中了解有关任意值支持的更多信息。