Właściwość CSSTransformacje

transform

Przesuwa, obraca, skaluje lub pochyla element bez wpływu na układ strony.

Wartość domyślna
none
Dziedziczona
Nie
Animowalna
tak, jako transformacja
Dotyczy
elementy transformowalne (bez niezastępowanych elementów liniowych)
JavaScript
element.style.transform = "rotate(10deg)"
Na tej stronie

Przykład

#
CSS
.card {
  transition: transform 0.2s;
}

.card:hover {
  transform: translateY(-4px) scale(1.02);
}
Podgląd

Definicja i zastosowanie

#

Właściwość transform zmienia wygląd elementu za pomocą funkcji: translate() przesuwa, rotate() obraca, scale() skaluje, a skew() pochyla. Funkcje można łączyć, a wykonują się od prawej do lewej względem punktu transform-origin.

Transformacja nie wpływa na układ: element wizualnie się przesuwa lub rośnie, ale jego pierwotne miejsce zostaje zarezerwowane, a sąsiedzi nie drgną. Dlatego transformacje świetnie nadają się do animacji.

Przeglądarki animują transform bardzo wydajnie, zwykle na karcie graficznej. Przesuwanie elementu przez transform: translate() jest płynniejsze niż zmiana left czy margin.

Składnia

#
Składnia
transform: none | <funkcja transformacji>+;

Wartości

#

Wartości w praktyce

#

none

Brak transformacji.
.demo { transform: none; }

translate(40px, -20px)

Przesunięcie o 40px w prawo i 20px w górę.
.demo { transform: translate(40px, -20px); }

rotate(25deg)

Obrót o 25 stopni zgodnie z ruchem wskazówek zegara.
.demo { transform: rotate(25deg); }

scale(1.3)

Powiększenie o 30%.
.demo { transform: scale(1.3); }

skew(-15deg)

Pochylenie w poziomie.
.demo { transform: skew(-15deg); }

rotate(15deg) scale(1.2)

Obrót i powiększenie naraz.
.demo { transform: rotate(15deg) scale(1.2); }

Obsługa przeglądarek

#

Szeroko dostępne

Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.

  • Chrome
  • Edge
  • Firefox
  • Safari

Dobre praktyki

#
  • Do animacji ruchu używaj transform zamiast top, left czy margin. Przeglądarka nie musi wtedy przeliczać układu.
  • Kolejność funkcji ma znaczenie: rotate(45deg) translateX(50px) daje inny wynik niż translateX(50px) rotate(45deg).

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.