تبدیلات دوبعدی (2D Transforms)
آشنایی با transform در CSS: translate، rotate، scale، skew و ترکیب آنها
تبدیلات (Transforms) در CSS
transform به شما اجازه میدهد عناصر را بچرخانید، جابهجا کنید، بزرگ/کوچک کنید یا کج کنید — بدون تأثیر بر چیدمان.
توابع ۲D
| تابع | توضیح | مثال |
|---|---|---|
translate() | جابهجایی | translate(50px, 20px) |
rotate() | چرخش | rotate(45deg) |
scale() | بزرگنمایی | scale(1.5) |
skew() | کج کردن | skew(20deg) |
matrix() | هر تبدیلات | ماتریس ۲×۳ |
۱. translate (جابهجایی)
.box {
transform: translate(50px, 100px); /* x, y */
/* مثل relative اما بدون رزرو فضا */
}
/* فقط افقی */
transform: translateX(50px);
/* فقط عمودی */
transform: translateY(100px);
/* وسطچین با translate */
.center {
position: absolute;
top: 50%; left: 50%;
transform: translate(-50%, -50%);
}
۲. rotate (چرخش)
.box {
transform: rotate(45deg); /* ۴۵ درجه ساعتگرد */
transform: rotate(-30deg); /* پادساعتگرد */
}
۳. scale (بزرگنمایی)
.box {
transform: scale(1.5); /* ۱.۵ برابر */
transform: scale(0.5); /* نصف */
transform: scale(2, 1); /* افقی ۲ برابر */
}
۴. skew (کج کردن)
.box {
transform: skew(20deg, 10deg);
transform: skewX(20deg);
transform: skewY(10deg);
}
ترکیب چند تبدیل
.box {
transform: translate(50px, 0) rotate(45deg) scale(1.2);
/* ترتیب مهم است! */
}
transform-origin
مبدأ تبدیل را تعیین میکند:
.box {
transform-origin: center; /* مرکز (پیشفرض) */
transform-origin: top right; /* بالا راست */
transform-origin: 0 0; /* گوشه */
transform: rotate(45deg);
}
کاربردهای رایج
/* hover با زوم */
.card:hover {
transform: scale(1.05);
transition: transform 0.3s;
}
/* دکمه با افکت فشردن */
.btn:active {
transform: scale(0.95);
}
/* آیکون چرخان */
.loading {
animation: spin 1s linear infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
بهترین شیوهها
- برای انیمیشن از
transformاستفاده کنید — بهینهتر از margin/width - همیشه
transitionاضافه کنید transform-originرا برای چرخش تنظیم کنید- ترکیب تبدیلات را با فاصله جدا کنید
نکات مهم
transformچیدمان دیگر عناصر را به هم نمیزند- عنصر تبدیلشده یک Stacking Context میسازد
- ترتیب تبدیلات مهم است
- برای انیمیشن روان،
will-change: transformاضافه کنید
این مبحث بخشی از دوره آموزش کامل CSS است.