Tailwind CSS 间距
在设计中,一致且和谐的间距是创造专业、美观的 UI 的关键。Tailwind 提供了一个全面且可定制的间距系统,通过 padding 和 margin 工具类来控制元素内外的空间。
概念:间距比例尺
Tailwind 的间距系统基于一个数字比例尺,默认情况下,1 单位等于 0.25rem (或 4px)。所以,p-4 意味着 padding: 1rem; (4 * 0.25rem),m-8 意味着 margin: 2rem; (8 * 0.25rem)。
这个比例尺是完全可定制的,你可以在 tailwind.config.js 的 theme.spacing 或 theme.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;
<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 来使一个固定宽度的块级元素水平居中。
<div class="w-96 mx-auto bg-white shadow-md rounded-lg">
<!-- 这个卡片将会水平居中 -->
</div>负外边距
Tailwind 也支持负外边距,只需在尺寸前加上一个负号 -。这在创建重叠元素时非常有用。
<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 容器中)并希望它们之间有均匀的间距时,你有两个主要选择:
使用
gap: 如果你使用的是 Flexbox 或 Grid 布局,gap-{size}是最简单、最推荐的方式。html<div class="flex gap-4"> <!-- ... --> </div>使用
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,从而在它们之间创建空间。
通过熟练运用这些间距工具,你可以精确地控制布局的节奏和呼吸感,创造出清晰、平衡的用户界面。