1. translate(x, y) – Posunutí
Posune element z jeho původní pozice. Klíčové je, že procenta se počítají z velikosti samotného elementu, ne z rodiče (toho se využívá u centrování).
translate(50px, 20px): Posun o 50px doprava a 20px dolů.translateX(100%): Posun o celou svou šířku doprava. CSS
.box {
transform: translate(20px, -10px);
}2. rotate(angle) – Otočení
Otáčí elementem kolem bodu (standardně střed). Používáme jednotky deg (stupně), rad (radiány) nebo turn (otočky).
rotate(45deg): Otočení po směru hodinových ručiček.rotate(-0.5turn): Otočení o 180° proti směru.
3. scale(x, y) – Změna velikosti
Zvětší nebo zmenší element. Hodnota 1 je původní velikost, 2 je dvojnásobek, 0.5 polovina.
-
scale(1.2): Zvětší celý element o 20 %. -
scaleX(-1): Zrcadlové převrácení horizontálně.
4. skew(x, y) – Zkosení (Zkřivení)
Element zůstane “přibitý” k zemi, ale nakloní se do stran. Skvělé pro moderní šikmé tvary v designu.
-
skewX(20deg): Nakloní svislé hrany. -
skew(10deg, 10deg): Zkosení v obou osách.
5. matrix(a, b, c, d, e, f) – Matematické finále
Tohle je funkce, kterou “pod kapotou” používají všechny předchozí. Je to 2D transformační matice 3×3. Pokud nepíšeš vlastní grafický engine, pravděpodobně ji ručně psát nebudeš, ale je dobré vědět, že existuje.
Standardní matice vypadá takto:
ab0cd0ef1
-
a,dřeší měřítko (scale). -
b,cřeší zkosení (skew) a rotaci. -
e,fřeší posun (translate).
Klíčové vlastnosti pro práci s transformacemi
Kombinování (Záleží na pořadí!)
Můžeš jich napsat víc za sebe. Pozor: Pořadí mění výsledek. Pokud nejdřív otočíš a pak posuneš, posouváš se v už otočených osách!
CSS
/* Nejdřív posun, pak rotace */
transform: translate(100px) rotate(45deg);
transform-origin
Určuje “bod ukotvení”. Standardně je to center (střed), ale můžeš ho změnit na roh nebo konkrétní pixel.
CSS
.door {
transform-origin: left; /* Dveře se budou otáčet u levého pantu */
transform: rotateY(90deg);
}
Rychlý přehled
| Funkce | Co dělá | Příklad |
|---|---|---|
| Translate | Posouvá | translate(50%, 0) |
| Rotate | Otáčí | rotate(180deg) |
| Scale | Mění velikost | scale(1.5) |
| Skew | Křiví / Naklání | skewX(10deg) |
| Matrix | Vše v jednom (matematicky) | matrix(1, 0, 0, 1, 10, 10) |