ویژگی transform-style
تعیین می کند که فرزندان یک عنصر در فضای سه بعدی عنصر نگهدارنده یا همان پدرشان بمانند یا حالت دو بعدی داشته باشند.
فرض کنید می خواهید فرزندان عنصری که در فضای سه بعدی می باشد را نیز در فضای سه بعدی به حرکت در بیاورید. این ویژگی حالت سه بعدی عنصر پدر را برای فرزندان نیز حفظ می کند (preserve).
منظور از فرزندان فقط فرزندان مستقیم عنصر پدر هستند و نه نوه ها و نتیجه ها :)
این ویژگی یکی از مقادیر preserve-3d
و flat
را می پذیرد. مقدار preserve-3d
به فرزندان عنصر نیز اجازه می دهد تا در فضای سه بعدی قرار بگیرند. اما مقدار flat
باعث می شود تا فرزندان عنصر به حالت تخت (دو بعدی) در صفحه عنصر پدر رسم شوند, یعنی قادر به حرکت و جای گرفتن در راستای محور Z نخواهند بود.
نمونه زیر را در نظر بگیرد:
<div class="container">
<div class="element">
<img src="assets.css-tricks.ir/images/skull-love.png" alt="">
</div>
</div>
عنصری که کلاس element
دارد در فضای سه بعدی قرار دارد و در این فضا چرخانده می شود. حال می خواهیم عنصر img
که فرزند مستقیم آن است, در فضای سه بعدی باقی بماند و قادر به چرخش سه بعدی باشد پس داریم:
.container {
/* فعال کردن فضای سه بعدی */
perspective: 800px;
}
.element {
width: 100%;
height: 400px;
background-color: rgba(255, 255, 255, 0.8);
/* transform */
transform: rotateY(50deg);
/* به فرزندان مستقیم این عنصر اجازه می دهد تا در فضای سه بعدی حرکت کنند */
transform-style: preserve-3d;
}
.element img {
transform: rotateX(-30deg);
}
مراقب باشید
لیست زیر ویژگی هایی با مقادیر خاص را نشان می دهد که اگر برای عنصری تعیین شوند, مرورگر باید تمام فرزندان آن عنصر را در حالت دو بعدی و تخت رسم کند و الا نمی تواند این ویژگی ها را برای عنصر تنظیم کند. پس در نتیجه اگر یکی از موارد زیر برای یک عنصر تعیین شود دیگر نمی توان از ویژگی transform-style
برای آن عنصر استفاده کرد, چون این ویژگی ها, ویژگی transform-style
را باز نویسی می کنند و تاثیر آن را از بین می برند:
overflow
با هر مقداری به غیر ازvisible
filter
با هر مقداری به غیر ازnone
clip
با هر مقداری به غیر ازauto
clip-path
با هر مقداری به غیر ازnone
isolation
با مقدارisolate
.mask-image
با هر مقداری به غیر ازnone
mask-box-source
با هر مقداری به غیر ازnone
mix-blend-mode
با هر مقداری به غیر ازnormal
در دموی زیر با تغییر مقدار این ویژگی به flat
تاثیر این ویژگی را مشاهده کنید:
See the Pen transform-style by Mojtaba Seyedi (@seyedi) on CodePen.
برای درک بهتر دمو به مطالب مربوط به transform و transform-origin و perspective مراجعه کنید.
عالی بود…با آرزوی توفیق روز افزون برای شما….انشالله مستدام باشین و به کار آموزشیتون ادامه بدهید…
ممنونم از شما، موفق باشید.
واقعا سایتتون محشره
یه هفته دنبال اموزش css بودم و بالاخره یکی از بهترین سایت هاشو پیدا کردم.
سلام چگونه میتوان در این صفحه :https://chrome.google.com/webstore/detail/linkednotes/kmmbfbgimpbcaaeibgnijiflciagmiha
کادر پایین صفحه : مرتبط
اسکرول بار ایجاد کرد