csstensorflow前端

Tailwind CSS 中的 spacing 详解

(间距)是 Tailwind CSS 里的一个核心概念,它主要用于控制 padding。Tailwind 提供了一套默认的。Tailwind 让布局变得简单直观!Tailwind 预定义了一组。如果默认值不够用,可以在。如果要在 CSS 里使用。

·阅读约 6 分钟·计算中...
Tailwind CSS 中的 spacing 详解

🔍 Tailwind CSS 中的 spacing 详解

spacing(间距)是 Tailwind CSS 里的一个核心概念,它主要用于控制 padding(内边距)、margin(外边距)、width(宽度)、height(高度) 等 CSS 属性。Tailwind 提供了一套默认的 spacing 值,同时允许你 自定义扩展


📌 1. Tailwind 的默认 spacing 规则

Tailwind 预定义了一组 spacing 值,通常基于 4px0.25rem)为单位递增:

{
  spacing: {
    '0': '0px',
    '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
    '20': '5rem',    // 80px
    '24': '6rem',    // 96px
    '32': '8rem',    // 128px
    '40': '10rem',   // 160px
    '48': '12rem',   // 192px
    '56': '14rem',   // 224px
    '64': '16rem',   // 256px
  }
}

👉 这些数值可以直接用于 p-*m-*w-*h-* 等类名,例如:

<div class="p-6 m-4 w-64 h-32 bg-blue-500">
  这个 div 具有 padding 1.5rem(24px)、margin 1rem(16px)、宽 16rem(256px)、高 8rem(128px)
</div>

📌 2. spacing 在 Tailwind 里的常见用法

🟢 padding(内边距)

<div class="p-4">padding: 1rem(16px)</div>
<div class="pt-6">padding-top: 1.5rem(24px)</div>
<div class="px-8">padding-left & right: 2rem(32px)</div>

🟢 margin(外边距)

<div class="m-2">margin: 0.5rem(8px)</div>
<div class="mt-10">margin-top: 2.5rem(40px)</div>
<div class="mx-12">margin-left & right: 3rem(48px)</div>

🟢 width & height(宽度 & 高度)

<div class="w-32 h-16 bg-gray-200">width: 8rem(128px),height: 4rem(64px)</div>

📌 3. 如何扩展 spacing

如果默认值不够用,可以在 tailwind.config.js 里扩展:

module.exports = {
  theme: {
    extend: {
      spacing: {
        '72': '18rem',  // 288px
        '84': '21rem',  // 336px
        '96': '24rem',  // 384px
      },
    },
  },
};

这样,你可以使用 p-72w-96 等类名:

<div class="p-72 w-96 bg-red-500">新的 spacing 规则生效!</div>

📌 4. theme("spacing.*") 用法

如果要在 CSS 里使用 spacing,可以用 theme() 函数:

.btn {
  padding: theme("spacing.6");  /* 1.5rem (24px) */
  margin: theme("spacing.10");  /* 2.5rem (40px) */
}

🎯 结论

  1. Tailwind 预定义了一组 spacing(基于 4px 递增)。
  2. p-*m-*w-*h-* 等类名都基于 spacing 值。
  3. 可以在 tailwind.config.js扩展 spacing,而不是覆盖默认值。
  4. theme("spacing.*") 可以在 CSS 里引用 spacing 值。

Tailwind 让布局变得简单直观!

常见误区

误区 1:把 spacing 当成“只管 padding”

spacing 不只影响 p-*m-*。很多尺寸类也会读取同一套间距刻度,例如 w-*h-*gap-*space-x-*space-y-*。这也是为什么 Tailwind 项目看起来比较统一:按钮内边距、卡片间距、网格 gap 和固定尺寸常常来自同一组数字。

误区 2:随手写任意值

Tailwind 支持 p-[18px] 这类任意值,但它应该用于少数特殊场景。如果所有间距都写成任意值,项目会重新变成“每个页面自己发明一套尺寸”。优先使用默认 spacing,只有设计稿确实需要特殊值时再写任意值。

误区 3:覆盖默认 spacing

大多数项目应该用 theme.extend.spacing 扩展,而不是直接覆盖 theme.spacing。覆盖默认值会让 Tailwind 内置尺寸失效,也容易让第三方组件、旧代码和团队习惯突然不匹配。

误区 4:只看视觉,不看响应式

桌面端舒服的间距,在移动端可能太宽。写布局时可以把 spacing 和断点一起考虑,例如移动端使用 p-4,桌面端再变成 md:p-6lg:p-8。这样既保留统一刻度,也能适配不同屏幕。

实战建议

  1. 先统一页面外层 padding,例如移动端 px-4,桌面端 md:px-8
  2. 卡片内部优先用 p-4p-5p-6,不要每个卡片单独写像素。
  3. 列表和网格间距优先用 gap-*,比给每个子元素写 margin 更稳定。
  4. 团队项目里,把新增 spacing 的原因写清楚,避免设计系统越来越散。

继续阅读

9 分钟

css中的3d使用:深入理解 CSS Perspective 与 Transform-Style

和是 CSS 3D 变换中不可或缺的两个属性。赋予了场景深度,模拟了观察者的视觉体验;而则决定了子元素如何在 3D 空间中呈现。掌握这两个属性的用法,将为您的网页设计带来更丰富的视觉层次和更具吸引力的交互体验。现在,不妨动手尝试一下,释放您的创意,打造出令人惊叹的 3D 世界吧!

10 分钟

深入理解CSS对齐属性:align-items, align-self, justify-items, justify-self

属性作用对象方向适用布局覆盖关系容器垂直Flex/Grid被align-self覆盖align-self子项垂直Flex/Grid覆盖容器水平Grid被覆盖子项水平Grid覆盖记忆口诀想调垂直用align,想调水平用justify容器设置用-items,单个调整用-selfGri

2 分钟

重排与重绘:CSS 动画为什么会卡

把浏览器渲染中的样式计算、布局、重绘和合成拆开解释,说明哪些 CSS 属性更容易触发布局开销,以及为什么 transform 和 opacity 通常更适合做动画。

订阅 FreeMac

每周精选:免费 Mac 软件评测、可信来源更新、替代方案和少折腾指南。