Skip to content

Tailwind CSS - 尺寸调整

尺寸调整工具类是 Tailwind CSS 中构建一致且响应式布局的基础。它们允许你使用预定义、直观的比例来控制元素的宽度和高度。这包括固定尺寸、百分比和视口相关单位。

以下是控制元素尺寸的主要工具类。它们为大多数布局需求提供了坚实的基础。

工具类组描述常见示例
Width (w-*))设置元素的宽度。w-64, w-1/2, w-full, w-screen, w-auto
Min-Width (min-w-*))设置元素的最小宽度。min-w-0, min-w-full, min-w-[200px] (任意值)
Max-Width (max-w-*))设置元素的最大宽度,常用于提高可读性。max-w-md, max-w-7xl, max-w-screen-lg
Height (h-*))设置元素的高度。h-48, h-full, h-screen, h-auto
Min-Height (min-h-*))设置元素的最小高度。min-h-0, min-h-full, min-h-screen
Max-Height (max-h-*))设置元素的最大高度。max-h-48, max-h-full, max-h-screen
Size (size-*))同时设置宽度和高度的速记属性。size-16, size-1/2, size-full

让我们看看这些尺寸调整工具类在实践中如何工作。以下示例展示了构建现代 UI 的常见用例。

此示例展示了一个容器,它在小屏幕上是全宽的,但在大屏幕上被限制为最大宽度以获得更好的可读性。这是内容部分非常常见的模式。

<!--
对于现代开发,建议使用 Vite 或 Next.js 等构建工具来设置 Tailwind CSS。
为简化此演示,我们使用了 Tailwind Play CDN。
-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Tailwind Sizing Example</title>
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-slate-100 p-8 font-sans">
<h2 class="text-2xl font-bold mb-4 text-slate-800">响应式内容容器</h2>
<div class="w-full max-w-4xl mx-auto bg-white p-6 rounded-lg shadow-md">
<p class="text-slate-600">
此 div 使用 `w-full` 占据其父元素的全部宽度,但 `max-w-4xl` 防止它在大屏幕上过宽。`mx-auto` 用于水平居中。
</p>
</div>
<h2 class="text-2xl font-bold mt-8 mb-4 text-slate-800">按钮的最小宽度</h2>
<div class="flex space-x-4">
<button class="min-w-[120px] bg-blue-500 text-white font-semibold py-2 px-4 rounded-lg shadow-md hover:bg-blue-600 transition-colors">
提交
</button>
<button class="min-w-[120px] bg-gray-300 text-slate-800 font-semibold py-2 px-4 rounded-lg shadow-md hover:bg-gray-400 transition-colors">
一个更长的标签
</button>
</div>
<p class="mt-2 text-sm text-slate-500">使用 `min-w-[120px]` 确保两个按钮具有相同的最小宽度,即使文本长度不同,也能保持统一的外观。</p>
</body>
</html>

h-screen 和 min-h-screen 工具类非常适合创建填充整个视口的布局,例如英雄(hero)区域或应用程序仪表盘(dashboards)。size-* 工具类是同时设置宽度和高度的便捷速记属性。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Tailwind Height & Size Example</title>
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-slate-100">
<!-- 一个全屏英雄区域 -->
<div class="min-h-screen bg-gradient-to-b from-sky-400 to-sky-600 flex flex-col items-center justify-center p-4 text-white">
<h1 class="text-5xl font-bold">欢迎!</h1>
<p class="mt-4 text-lg">此区域使用 `min-h-screen` 始终填满视口的高度。</p>
</div>
<!-- 使用 `size-*` 工具类 -->
<div class="p-8">
<h2 class="text-2xl font-bold mb-4 text-slate-800">尺寸工具类</h2>
<div class="flex items-center space-x-4">
<div class="size-24 bg-violet-500 rounded-lg flex items-center justify-center font-bold text-white shadow-lg">size-24</div>
<div class="size-32 bg-violet-500 rounded-full flex items-center justify-center font-bold text-white shadow-lg">size-32</div>
<p class="text-slate-600">`size-*` 工具类在一个类中设置了宽度和高度。</p>
</div>
</div>
</body>
</html>
  • 移动优先(Mobile-First):首先为小屏幕进行设计,然后使用 md:w-1/2 等响应式前缀来适应大屏幕布局。
  • 内容使用 max-w:对于文本密集型容器,使用 max-w-*(例如 max-w-prose)来控制行长并提高可读性。
  • 布局使用 min-h-screen:对于顶层布局容器,优先使用 min-h-screen 而不是 h-screen。这可以防止内容在小屏幕上溢出视口高度时被截断。
  • 任意值:当默认尺寸比例不够用时,可以使用任意值来满足一次性的尺寸需求,例如 w-[300px] 或 h-[50vh]。