CSS Pulsuz, qeydiyyatsız

CSS transform generatoru

Sürüşdürücüləri hərəkət etdirin: kart sürüşür, fırlanır, böyüyür və əyilir. Qırıq xətli kontur elementin transformasiyadan əvvəlki yerini, qırmızı nöqtə fırlanma mərkəzini (transform-origin) göstərir, hazır CSS isə aşağıda görünür.

Nəticə
Hazır CSS kodu
.element {
  transform: translate(40px, 20px) rotate(15deg) scale(1.1);
}

Necə istifadə etmək olar

  1. translate, rotate, scale və skew ilə kartı dəyişin — qırıq xətli kontur ilkin yerdə qalır.
  2. transform-origin seçin — elementin ətrafında fırlanıb ölçüsünü dəyişdiyi nöqtə; onu qırmızı nöqtə göstərir.
  3. «3D» işarəsini qoyun: rotateX, rotateY və valideynin perspective dəyəri əlavə olunur.
  4. «none-dan animasiya et» düyməsi transformasiyasız vəziyyətdən sizin nəticəyə keçidi göstərir, sonra «Kopyala» düyməsini basın.

Bu necə işləyir

Dörd 2D funksiya

translate(x, y) elementi sürüşdürür, rotate(bucaq) saat əqrəbi istiqamətində fırladır, scale(x, y) böyüdür və ya kiçildir (scale(-1) güzgü effekti verir), skew(x, y) isə əyir. Transformasiya yalnız çəkilişi dəyişir: elementin axındakı ilkin yeri tutulmuş qalır, qonşular yerindən tərpənmir — qırıq xətli kontur məhz bunu göstərir. translate-də faizlər elementin öz ölçüsündən hesablanır, ona görə translate(-50%, -50%) mərkəzləmənin klassik üsuludur.

Funksiyaların ardıcıllığı vacibdir

Hər funksiya əvvəlkilərin artıq dəyişdiyi koordinat sistemində işləyir. translateX(100px) rotate(45deg) əvvəlcə elementi 100px sağa sürüşdürür, sonra yerindəcə fırladır. rotate(45deg) translateX(100px) isə əvvəlcə oxları fırladır, element əyilmiş ox boyunca 100px — diaqonal hərəkət edir. Generator funksiyaları sabit ardıcıllıqla yazır: translate, rotateX, rotateY, rotate, scale, skew.

/* sağa sürüşür, sonra yerindəcə fırlanır */
transform: translateX(100px) rotate(45deg);

/* əvvəl fırlanır, sonra diaqonal sürüşür */
transform: rotate(45deg) translateX(100px);

transform-origin: fırlanma nöqtəsi

Susmaya görə başlanğıc nöqtə elementin mərkəzidir (50% 50%). rotate və scale bu nöqtəni yerindən tərpətmir, ona görə transform-origin: top left elementi sol üst küncü ətrafında fırladır. Dəyər açar sözləri, faizləri və uzunluqları qəbul edir.

transform-origin: top left;
transform-origin: 20% 80%;

3D: perspective, rotateX və rotateY

rotateX elementi irəli-geri əyir, rotateY isə sola-sağa çevirir. perspective olmadan görüntü yastı qalır. perspective-i valideynə verin: dəyər nə qədər kiçikdirsə, dərinlik hissi bir o qədər güclüdür. Eyni effekti bir element daxilində transform siyahısının əvvəlində perspective() funksiyası ilə də almaq olar.

.parent  { perspective: 600px; }
.element { transform: rotateX(25deg) rotateY(-20deg); }

Ayrıca xassələr: translate, rotate, scale

Müasir brauzerlər translate, rotate və scale-i müstəqil xassələr kimi də dəstəkləyir. Onlar translate, rotate, scale, sonra isə transform ardıcıllığı ilə tətbiq olunur, ona görə bütün transform siyahısını yenidən yazmadan onlardan birini dəyişmək və ya animasiya etmək olar. Bütün əsas brauzerlərdə 2022-ci ildən dəstəklənir.

.element {
  translate: 40px 20px;
  rotate: 15deg;
  scale: 1.1;
}

Tez-tez verilən suallar

Niyə transform elementimdə işləmir?

Ən çox rast gəlinən səbəb display: inline-dır: <span> və ya <a> kimi sətir daxili elementlərə transformasiya tətbiq olunmur. display: inline-block (və ya block, flex) yazın. Həmçinin sonrakı qaydanın transform-u üstələmədiyini yoxlayın.

transform funksiyalarının ardıcıllığı vacibdirmi?

Bəli. translate(100px) rotate(45deg) və rotate(45deg) translate(100px) fərqli nəticə verir, çünki hər funksiya növbətisi üçün koordinat sistemini dəyişir. Funksiyaları elementin öz oxlarının soldan sağa hərəkətləri kimi təsəvvür edin.

transform: rotate() ilə rotate xassəsi arasında fərq nədir?

Nəticə eynidir, lakin ayrıca xassə sabit ardıcıllıqla (translate, rotate, scale, sonra transform) tətbiq olunur və müstəqil animasiya edilə bilər. transform köhnə brauzerlərdə daha yaxşı dəstəklənir və ardıcıllığı idarə etməyə imkan verir.

transform səhifənin maketinə və performansa təsir edirmi?

Transformasiya maketi dəyişmir: qonşular yerində qalır, elementin ilkin yeri tutulmuş qalır. Bundan əlavə, yeni üst-üstə düşmə konteksti (stacking context) yaradır. transform-u animasiya etmək ucuzdur: brauzer bunu adətən maketi yenidən hesablamadan GPU-da edir, ona görə top və ya left-i animasiya etməkdən yaxşıdır.

HTML və CSS kursunda bu mövzu

Digər CSS alətləri

CSS gradient generatoru Linear, radial və conic gradient: rəngləri, bucağı və nöqtələri seçin, hazır kodu kopyalayın. Flexbox generatoru və playground Konteyner və elementlərin flex xassələrini sınayın: istiqamət, düzləmə, boşluq və hazır CSS. CSS Grid generatoru Sütun və sətir ölçülərini seçin, boşluğu və düzləməni tənzimləyin, hazır grid kodunu kopyalayın. CSS box-shadow generatoru Kölgənin yerini, bulanıqlığını, rəngini və laylarını seçin, hazır box-shadow kodunu kopyalayın. Cubic-bezier generatoru Easing əyrisinin nöqtələrini sürüşdürün və hazır CSS transition kodunu kopyalayın. SVG animasiya generatoru Forma və effekt seçin — səhifəyə yapışdırmaq üçün hazır SVG və CSS keyframes alın. CSS specificity kalkulyatoru Seçiciləri yazın — (a,b,c) ağırlığını, rəngli təhlilini və hansı qaydanın qalib gəldiyini görün. CSS box model vizualizatoru Content, padding, border və margin-i DevTools tipli sxemdə görün və hazır CSS kodunu alın. CSS clamp() kalkulyatoru Min və maks şrift ölçüsünü və ekran enini yazın — axıcı tipoqrafika üçün hazır clamp() alın. Rəng kontrastı yoxlayıcısı (WCAG) Mətn və fon rənginin kontrastını WCAG AA və AAA üzrə yoxlayın, uyğun gəlməyən cütü düzəldin. CSS clip-path generatoru Poliqon, dairə, ellips və kəsilmiş künclər: nöqtələri sürüşdürün və hazır CSS kodunu kopyalayın. CSS Glassmorphism generatoru Mat şüşə effekti: backdrop-filter blur, şəffaflıq, kənar işığı və hazır CSS kodu. CSS border-radius (Blob) generatoru Üzvi formalar və 8 dəyərli border-radius: radiusları sürüşdürün, canlı blob animasiyasını yoxlayın. CSS Stacking Context və z-index vizualizatoru z-index: 9999 niyə işləmir? 3D laylar görünüşü ilə CSS Stacking Context mexanizmini və səbəblərini vizual öyrənin. CSS aspect-ratio və object-fit generatoru Şəkillərin deformasiyasına və CLS sıçrayışlarına son: aspect-ratio proporsiyaları və object-fit fokus nöqtəsi canlı. CSS Filtr Studiyası və generatoru Qrafik redaktorsuz foto effektləri: blur, contrast, hue-rotate, sepia və Instagram üslublu hazır presətlər. OKLCH rəng generatoru və palitrası Göz üçün bərabər parlaqlıq və Display P3 canlı rənglər: OKLCH konvertasiyası, qradasiya və harmonik palitralar. CSS Scroll-driven Animations generatoru JavaScript olmadan skroll animasiyaları: animation-timeline scroll() və view() ilə oxuma lenti və kartların açılması. CSS Container Queries (@container) generatoru Media sorğularına son: komponent ekran ölçüsünə deyil, öz konteynerinin eninə uyğunlaşır. Canlı ölçü dəyişmə və @container qaydaları.
WhatsApp