Obróć element
Dwa sposoby, ten sam wynik: funkcja rotate() wewnątrz transform albo samodzielna właściwość rotate. Dodatnie kąty obracają zgodnie z ruchem wskazówek zegara:
Niebieskie i zielone pudełko są obrócone dokładnie tak samo, o 45 stopni zgodnie z ruchem wskazówek zegara wokół swoich środków. Bursztynowe pudełko ma ujemny kąt, więc przechyla się w przeciwną stronę. Obrót nigdy nie przesuwa układu: każde pudełko nadal zajmuje swoje pierwotne miejsce 90 na 60, dlatego obrócone elementy mogą zachodzić na sąsiadów.
Jednostki kąta
| Jednostka | Pełny obrót | 90 stopni |
|---|---|---|
deg | 360deg | 90deg |
turn | 1turn | 0.25turn |
rad | 6.2832rad | 1.5708rad |
grad | 400grad | 100grad |
deg to zwykły wybór; turn dobrze się czyta przy obracaniu (rotate: 1turn). Kąty ponad 360 są dozwolone i mają znaczenie w animacjach: rotate(720deg) w klatce kluczowej obraca dwa razy. Zawsze pisz jednostkę: rotate(45) jest nieprawidłowe i zostaje zignorowane.
Przesuń suwak, żeby zobaczyć kąt w każdej jednostce:
Obracanie wokół rogu: transform-origin
Element domyślnie obraca się wokół swojego środka. transform-origin przesuwa punkt obrotu. Wskazówka zegara obraca się wokół swojego końca, a nie środka:
Dolny koniec wskazówki leży na bursztynowym sworzniu na środku tarczy, a rotate: 120deg obraca ją na czwartą. Usuń linijkę z transform-origin, a wskazówka będzie się obracać wokół własnego środka, poza sworzniem.
Obracanie tekstu i pionowe etykiety
Niewielkie przechylenie przez rotate sprawdza się przy plakietce czy naklejce. Dla naprawdę pionowej etykiety lepsze jest writing-mode, bo zmienia układ: element staje się wysoki i wąski, zamiast zachodzić na to, co jest obok.
Odczyt pokazuje rozmiar każdej etykiety w układzie. Obrócona nadal zajmuje swoje pierwotne szerokie i niskie pudełko: zostawia obok pustą przerwę i wystaje nad i pod swój wiersz, na to, co tam jest. Ta z writing-mode zajmuje wysokie, wąskie pudełko. Dodanie rotate: 180deg sprawia, że czyta się ją od dołu do góry, co jest typowym kierunkiem dla pionowej etykiety.
Obracanie ikony po kliknięciu lub najechaniu
Obrócenie strzałki o 180 stopni to standardowy sposób, żeby pokazać, że sekcja jest otwarta. Połącz rotate z przejściem:
Szewron to kwadrat z dwoma obramowaniami, obrócony o 45 stopni, żeby wskazywał w dół. Gdy przycisk jest rozwinięty, obraca się do 225 stopni i wskazuje w górę, a przejście animuje ten półobrót. Styl zależy od atrybutu aria-expanded, więc stan wizualny i stan ogłaszany przez czytniki ekranu nigdy się nie rozjadą.
Kręcący się wskaźnik ładowania
Kręcenie to obrót od 0 do 360 stopni, powtarzany z czasem linear, żeby prędkość się nie zmieniała:
Przy samej klatce to animacja zaczyna od własnego obrotu elementu (brak) i kończy na 360deg, a infinite powtarza ją bez skoku, bo 360deg wygląda tak samo jak 0. Dla osób, które poprosiły system o ograniczenie ruchu, wskaźnik obraca się trzy razy wolniej. Więcej o klatkach kluczowych na stronie o animacjach.
Obrót 3D: rotateX, rotateY
rotateX() przechyla element do tyłu wokół osi poziomej, a rotateY() obraca go wokół osi pionowej, jak drzwi. Bez perspektywy wyglądają tylko na spłaszczone; perspective na rodzicu dodaje głębię:
.scene { perspective: 600px; }
.card { transform: rotateY(35deg); }
.flip { transform: rotateY(180deg); backface-visibility: hidden; } /* card flip */
Żeby odbić element lustrzanie zamiast go obracać, użyj scale: -1 1 (odbicie w poziomie). Obrót o 180 stopni odwraca go do góry nogami, a to nie to samo.
Częste błędy
- Obracanie
<span>lub<a>, które stoi w miejscu. Zwykłe elementy liniowe ignorują transformacje. Dodajdisplay: inline-block. - Obrót, który znika przy najechaniu. Reguła hover z
transform: scale(1.1)zastępujetransform: rotate(...). Użyj osobnych właściwościrotateiscalealbo wypisz obie funkcje. - Oczekiwanie, że układ zrobi miejsce. Obrócony obrazek zachowuje swoje nieobrócone pudełko i zachodzi na sąsiadów. Daj kontenerowi obrócony rozmiar albo użyj
writing-modedla tekstu. - Wskaźniki ładowania z
ease. Domyślny czas przyspiesza i zwalnia w każdym obrocie. Użyjlinear. - Obracanie wokół złego punktu. Ustaw
transform-origin, zanim zaczniesz dopracowywać kąt.
Najczęściej zadawane pytania
Jak obrócić element w CSS?
Użyj transform: rotate(45deg); albo osobnej właściwości rotate: 45deg;. Dodatnie kąty obracają zgodnie z ruchem wskazówek zegara, a ujemne przeciwnie, wokół środka elementu, chyba że zmienisz transform-origin.
Czym różni się transform: rotate() od właściwości rotate?
Dają ten sam wynik. Właściwość rotate jest niezależna od transform, więc reguła hover może zmienić scale albo translate bez usuwania obrotu, a każda może mieć własne przejście. Razem działają jak transform: translate() rotate() scale(), bez względu na kolejność, w jakiej je zadeklarujesz.
Jak obrócić obrazek o 90 stopni w CSS?
Dodaj transform: rotate(90deg); (albo rotate: 90deg;) do img. Obrazek zachowuje w układzie swoje pierwotne miejsce, więc wysoki obrazek obrócony do poziomu może zachodzić na sąsiadów; daj jego kontenerowi miejsce na obrócony rozmiar.
Jak sprawić, żeby element kręcił się w CSS?
Zdefiniuj @keyframes spin { to { rotate: 360deg; } } i zastosuj animation: spin 1s linear infinite;. Użyj linear, żeby prędkość była stała, i spowolnij albo zatrzymaj animację przy prefers-reduced-motion: reduce.
Jak obrócić tekst pionowo w CSS?
Dla pionowej etykiety writing-mode: vertical-rl jest zwykle lepsze niż rotate(90deg), bo zmienia też układ: element zajmuje miejsce w pionie zamiast zachodzić na inne. Używaj rotate do drobnych, dekoracyjnych przechyleń.