Tailwind CSS 核心语法篇 八:元素变换
发表于更新于
字数总计:1.2k阅读时长:5分钟阅读量: 广东
前端技术前端三方库Tailwind CSS 核心语法篇 八:元素变换
Prorise8. 变换 (Transforms)
变换(Transform)是 CSS 中一组功能强大的属性,它允许你在不影响文档流(即不推开其他元素)的情况下,对元素进行移动、旋转、缩放和倾斜。这是创建动态、富有交互性的 UI 动画的基础。Tailwind 将复杂的变换语法封装成了简单直观的工具类。
二维变换是在 X
轴(水平)和 Y
轴(垂直)上对元素进行操作,这是最常用的一类变换。它们通常与 transition
结合使用,以创建平滑的交互效果。
translate
(移动): 用于将元素从其原始位置移动。rotate
(旋转): 用于使元素围绕其中心点旋转。scale
(缩放): 用于放大或缩小元素,是创建悬停反馈的绝佳方式。skew
(倾斜): 用于使元素沿 X 轴或 Y 轴产生形变。
类别 | 常用类名 | 说明 |
---|
移动 | translate-x-4 , -translate-y-1/2 | 分别沿 X 轴和 Y 轴移动 |
旋转 | rotate-45 , -rotate-90 | 顺时针或逆时针旋转 |
缩放 | scale-105 , scale-x-150 | 均匀缩放或仅沿 X 轴缩放 |
倾斜 | skew-x-6 , -skew-y-3 | 沿 X 轴或 Y 轴倾斜 |
代码范例:组合使用二维变换创建交互效果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>2D Transforms</title> <script src="https://cdn.tailwindcss.com"></script> </head> <body class="bg-slate-100 p-8"> <div class="grid grid-cols-2 md:grid-cols-4 gap-12 justify-items-center items-center text-center text-white font-bold"> <div class="w-28 h-28 bg-sky-500 rounded-lg flex items-center justify-center transition hover:scale-110"> Scale </div> <div class="w-28 h-28 bg-red-500 rounded-lg flex items-center justify-center transition hover:rotate-45"> Rotate </div> <div class="w-28 h-28 bg-amber-500 rounded-lg flex items-center justify-center transition hover:-translate-y-4"> Translate </div> <div class="w-28 h-28 bg-emerald-500 rounded-lg flex items-center justify-center transition hover:skew-x-12"> Skew </div> </div> </body> </html>
|
默认情况下,所有变换(如旋转、缩放)都是围绕元素的中心点进行的。通过 origin-{location}
工具可以改变这个变换的“轴心点”,从而创造出完全不同的动画效果。
常用类名 | 说明 |
---|
origin-center | 中心点 (默认) |
origin-top-left | 左上角 |
origin-bottom-right | 右下角 |
origin-top | 顶部中心 |
origin-bottom | 底部中心 |
代码范例:改变旋转的中心点
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Transform Origin</title> <script src="https://cdn.tailwindcss.com"></script> </head> <body class="p-16"> <div class="grid grid-cols-3 gap-16 justify-items-center text-center text-white font-semibold"> <div> <div class="w-24 h-24 bg-sky-500 transition duration-500 hover:rotate-45 origin-center"></div> <p class="mt-4">Origin Center</p> </div> <div> <div class="w-24 h-24 bg-sky-500 transition duration-500 hover:rotate-45 origin-top-left"></div> <p class="mt-4">Origin Top Left</p> </div> <div> <div class="w-24 h-24 bg-sky-500 transition duration-500 hover:rotate-45 origin-bottom"></div> <p class="mt-4">Origin Bottom</p> </div> </div> </body> </html>
|