Transformacje CSS: rotate, scale, translate i skew

Plac zabaw transformacji CSS

Transformacje CSS: rotate, scale, translate, skew, obrót 3D | We.Inc

Przesuwaj suwaki rotate, scale, translate i skew i kopiuj CSS oraz klasy Tailwind. Omawia kolejność transformacji, transform-origin, obracanie kart w 3D i płynną animację.

Przesuwaj, obracaj, skaluj lub pochylaj element właściwością transform: transform: translate(20px, 0) rotate(15deg) scale(1.1) skewX(5deg). Funkcje są stosowane od prawej do lewej, więc ich kolejność zmienia wynik. Transformacje nigdy nie przesuwają otaczającego układu, a ich animowanie jest tanie, bo przeglądarka może przekazać tę pracę compositorowi.

Cztery funkcje transformacji 2D

Użyj suwaków, aby zbudować transformację i obserwować reakcję karty, a potem przełączaj się między pojedynczą właściwością transform a osobnymi właściwościami translate, rotate i scale. Niżej znajdziesz demo punktu zaczepienia, obrót 3D reagujący na najechanie, przepisy na przejścia i wyjaśnienie, dlaczego transformacje pozostają płynne, gdy top i left się zacinają.

Najczęściej zadawane pytania

Dlaczego kolejność funkcji transformacji ma znaczenie?

Każda funkcja zmienia układ współrzędnych dla funkcji zapisanych przed nią, więc lista jest w praktyce stosowana od prawej do lewej. translate(100px) rotate(45deg) obraca element, a potem przesuwa go prosto w prawo, natomiast rotate(45deg) translate(100px) przesuwa go wzdłuż obróconej, ukośnej osi.

Czym różni się transform: rotate() od właściwości rotate?

Właściwości rotate, scale i translate to samodzielne wersje tych samych funkcji. Można je ustawiać i animować osobno, więc skalowanie przy najechaniu nie kasuje obrotu ustawionego gdzie indziej. Przeglądarka stosuje najpierw translate, potem rotate, potem scale, a na końcu wszystko, co jest w transform.

Czy transform wpływa na układ lub inne elementy?

Nie. Element zachowuje w układzie swój pierwotny box, a sąsiedzi się nie przesuwają. Zmienia się tylko jego namalowany obraz. Transformowany element tworzy jednak nowy kontekst nakładania i staje się containing block dla potomków z position fixed, co może zaskoczyć przy modalach.

Jak odbić element w poziomie?

Użyj transform: scaleX(-1) lub właściwości scale z wartością scale: -1 1. Odbija to element względem jego punktu zaczepienia, którym domyślnie jest środek. Aby uzyskać obrót 3D pokazujący tylną stronę, obracaj wokół osi Y wewnątrz rodzica z perspective.

Dlaczego mój transformowany tekst jest rozmyty?

Ułamkowe przesunięcia i niektóre wartości skali umieszczają znaki między pikselami, co je zmiękcza, zwłaszcza podczas trwania animacji. Zaokrąglanie wartości translate do pełnych pikseli i skalowanie do docelowego rozmiaru zamiast powiększania z mniejszego zwykle wyostrza wynik.

Jak czytać listę transformacji

Dlaczego transformacje animują się płynnie

3D w jednym akapicie

Wszystkie funkcje transformacji

Funkcje transformacji 2D i 3D z odpowiadającymi im klasami Tailwind

Kolejność operacji

Te same dwie funkcje w innej kolejności umieszczają element w innym miejscu. Oba niebieskie elementy startują z tego samego punktu.

Najpierw translate, potem rotate, kontra najpierw rotate, potem translate

W pierwszym elemencie przesunięcie następuje wzdłuż osi X ekranu. W drugim przesunięcie podąża za obróconą osią, więc element ląduje niżej.

Osobne właściwości nie nadpisują się nawzajem

Reguła hover dotyka tylko scale, więc rotate ustawione w regule bazowej przetrwa. Przy skrócie transform trzeba by powtórzyć rotate(-3deg) wewnątrz :hover.

Ten sam obrót, trzy punkty zaczepienia

Punkt zaczepienia to punkt, który pozostaje nieruchomy. center jest domyślny; top left obraca element jak drzwi na zawiasie w rogu.

Obrót karty w 3D

Najedź lub ustaw fokus, aby obrócić (tylko CSS)

perspective na kontenerze nadaje głębię, preserve-3d trzyma obie strony w jednej przestrzeni 3D, a backface-visibility ukrywa stronę skierowaną od widza. Użytkownicy z ograniczonym ruchem dostają natychmiastową zamianę.

Łączenie transformacji z przejściami

Uniesienie przy najechaniu dla kart i przycisków

Zmieniają się tylko transform i box-shadow, a ruch jest wyłączany dla czytelników, którzy proszą o mniej animacji.

Ten sam pomysł w Tailwind

motion-safe: stosuje ruch przy najechaniu tylko wtedy, gdy czytelnik nie zażądał ograniczenia animacji.

Co jest tanie w animowaniu

Praca renderowania wywoływana zmianą właściwości (typowe zachowanie przeglądarek)

(brak transformacji)

Plac zabaw transformacji

Styl wyniku

skrót transform

osobne właściwości

Resetuj

Karta

Przerywany obrys: miejsce karty w układzie. Ciemna kropka: transform-origin.

Kopiuj CSS

Klasy Tailwind

Kopiuj klasy

Zacznij za darmo · Bez karty kredytowej

Powiązane: Poradniki

Produkt

Dla kogo

Funkcje

Zasoby

Firma

Mapa strony