تبدیلات سه‌بعدی در CSS

css 3d transforms
20 آبان 1403

در دنیای طراحی وب، تکنولوژی هر روز در حال پیشرفت است و قابلیت‌های جدیدی ارائه می‌دهد. یکی از این قابلیت‌های جذاب، تبدیل‌های سه‌بعدی در CSS است که به طراحان اجازه می‌دهد تا انیمیشن‌ها و جلوه‌های بصری جذابی خلق کنند. تبدیل‌های سه‌بعدی به ما این امکان را می‌دهند تا به جای طراحی‌های دوبعدی ساده، با عمق و زوایای مختلف کار کنیم.

استفاده از تبدیل‌های سه‌بعدی نیازمند کمی فهم اولیه از محیط سه‌بعدی است اما نگران نباشید، چرا که CSS آنها را به خوبی برای ما انتزاع‌سازی کرده است. در این محیط، شما می‌توانید اجسام خود را به جلو یا عقب حرکت دهید، بچرخانید، و حتی از زوایای مختلف آن‌ها را مشاهده کنید. این تحولات از طریق ترکیبی از توابع نظیر transform و transform-style پیاده‌سازی می‌شوند.

روش‌های پیاده‌سازی

با استفاده از تابع rotateX() می‌توانید به راحتی عناصر را حول محور X بچرخانید. به طور مشابه، rotateY() برای چرخش حول محور Y و rotateZ() برای محور Z استفاده می‌شود. هرکدام از این محورها به شما امکان می‌دهد تا تغییرات جذابی در نمایش عناصر ایجاد کنید.

ایجاد اثرات عمق

برای ایجاد حس عمق، می‌توانید ترکیبی از مقیاس‌بندی (با استفاده از scale) و ترجمه سه‌بعدی (مثلاً translateZ()) استفاده کنید. این تکنیک‌ها می‌توانند به شما در تولید طراحی‌هایی واقع‌گرایانه‌تر کمک کنند. یکی از نکات مهم در اینجا، استفاده مناسب از زوایا و ترجمه‌ها برای حفظ تعادل طراحی است.

<style>
.box {
width: 100px;
height: 100px;
background-color: #4CAF50;
transform: rotateX(45deg) rotateY(45deg);
transform-style: preserve-3d;
}
</style>
<div class="box"></div>

توضیحات کد

<style> برچسبی است که حاوی استایل‌های CSS برای صفحه‌ای است که در حال طراحی آن هستید.
.box کلاس مربوط به عنصر div است و برای اعمال استایل‌ها روی آن استفاده می‌شود.
width و height برای تعیین اندازه عنصر استفاده می‌شوند. در اینجا 100 پیکسل است.
background-color رنگ پس‌زمینه عنصر را تعریف می‌کند که در اینجا سبز است.
transform برای اعمال چرخش‌ها و دیگر تغییرات سه‌بعدی روی عنصر به کار می‌رود. اینجا، عنصر حول محوری X و Y با زاویه 45 درجه چرخیده است.
transform-style خاصیت سه‌بعدی حفظ حالت نمایش سه‌بعدی در طی سلسله مراتب داخلی عنصر را ممکن می‌سازد.

سوالات متداول

؟

چگونه می‌توان در CSS یک شیء را حول محور X چرخاند؟

؟

چه تفاوتی بین rotateY() و rotateZ() وجود دارد؟

؟

چرا از transform-style: preserve-3d; استفاده می‌کنیم؟