Skip to content

Tailwind CSS - 缩放

Tailwind CSS 中的 scale(缩放)工具类允许你使用 CSS transform 属性来调整元素大小。这非常适合创建交互式 UI (用户界面) 反馈,例如悬停或聚焦时的缩放效果,而不会影响文档布局。

Tailwind 提供了一整套类,用于按比例缩放元素,或沿单个轴(X 轴或 Y 轴)缩放元素。

类名CSS 属性
scale-0transform: scale(0);
scale-x-0transform: scaleX(0);
scale-y-0transform: scaleY(0);
scale-50transform: scale(.5);
scale-x-50transform: scaleX(.5);
scale-y-50transform: scaleY(.5);
scale-75transform: scale(.75);
scale-x-75transform: scaleX(.75);
scale-y-75transform: scaleY(.75);
scale-90transform: scale(.9);
scale-x-90transform: scaleX(.9);
scale-y-90transform: scaleY(.9);
scale-95transform: scale(.95);
scale-x-95transform: scaleX(.95);
scale-y-95transform: scaleY(.95);
scale-100transform: scale(1);
scale-x-100transform: scaleX(1);
scale-y-100transform: scaleY(1);
scale-105transform: scale(1.05);
scale-x-105transform: scaleX(1.05);
scale-y-105transform: scaleY(1.05);
scale-110transform: scale(1.1);
scale-x-110transform: scaleX(1.1);
scale-y-110transform: scaleY(1.1);
scale-125transform: scale(1.25);
scale-x-125transform: scaleX(1.25);
scale-y-125transform: scaleY(1.25);
scale-150transform: scale(1.5);
scale-x-150transform: scaleX(1.5);
scale-y-150transform: scaleY(1.5);

缩放与 transition(过渡)结合使用时最有效,可以创建平滑的动画。使用 hover:、focus: 和 group-hover: 等状态修饰符,在用户交互期间应用缩放效果。

  • scale-{amount}:按比例在 X 轴和 Y 轴上缩放元素。
  • scale-x-{amount}:仅水平缩放元素。
  • scale-y-{amount}:仅垂直缩放元素。

此示例演示了如何创建一个视觉上引人入胜的卡片网格,这些卡片在悬停时会放大。请注意 transition (过渡)、duration (持续时间) 和 ease-in-out (缓入缓出) 的使用,以使效果流畅。

<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-gray-100 p-8">
<h2 class="text-3xl font-bold mb-6 text-center">交互式卡片网格</h2>
<div class="grid md:grid-cols-3 gap-8">
<!-- 卡片 1:均匀缩放 -->
<div class="group bg-white p-6 rounded-lg shadow-md transition-transform duration-300 ease-in-out hover:scale-105">
<h3 class="text-xl font-semibold mb-2">缩放</h3>
<p class="text-gray-600">此卡片在悬停时均匀放大。</p>
</div>
<!-- 卡片 2:水平缩放 -->
<div class="group bg-white p-6 rounded-lg shadow-md transition-transform duration-300 ease-in-out hover:scale-x-110">
<h3 class="text-xl font-semibold mb-2">X 轴缩放</h3>
<p class="text-gray-600">此卡片在悬停时水平缩放。</p>
</div>
<!-- 卡片 3:垂直缩放 -->
<div class="group bg-white p-6 rounded-lg shadow-md transition-transform duration-300 ease-in-out hover:scale-y-110">
<h3 class="text-xl font-semibold mb-2">Y 轴缩放</h3>
<p class="text-gray-600">此卡片在悬停时垂直缩放。</p>
</div>
</div>
</body>
</html>

对于精确缩放,请在方括号中使用任意值。当默认缩放值不符合你的设计规范时,这非常有用。

<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="p-8">
<h2 class="text-2xl font-bold mb-4">任意缩放值</h2>
<div class="w-32 h-32 bg-purple-500 text-white flex items-center justify-center rounded-lg transition hover:scale-[1.15]">
悬停我!
</div>
</body>
</html>

CSS transform(变换)属性,例如 scale,具有很高的性能,因为它们通常由 GPU (图形处理器) 处理。这意味着它们不会触发耗费性能的浏览器重绘或回流,即使在性能较低的设备上也能实现流畅的动画。