Transformace
CSS transformace umožňují prvků na stránce měnit jejich velikost, rotaci, posunutí a zkreslení. Transformace se provádí pomocí CSS vlastnosti transform
. Transformace se provádí vzhledem k původní velikosti prvku a neovlivňují pozice ostatní prvků na stránce.
Změna velikosti prvku
Základní
Následující kód zařídí, aby se prvek se třídou prvek
jevil dvakrát větší, než je jeho původní velikost.
.prvek {
transform: scale(2);
}
Pouze v jedné ose
Další kód naopak způsobí, že prvek bude třikrát větší ve směru osy x. Tedy velmi široký.
.prvek {
transform: scaleX(3);
}
A pro ovlivnění pouze velikosti na ose y použijeme scaleY
. Následující kód zmenší prvek na polovinu výšky a převrátí vzhůru nohama.
.prvek {
transform: scaleY(-0.5);
}
Příklad užití
- Zvětšení obrázku při najetí myši.
Rotace prvku
Rotace prvku se provádí pomocí funkce rotate
. Následující kód otočí prvek o 45 stupňů.
.prvek {
transform: rotate(45deg);
}
Příklad užití
- Ikonka křížku pouze v HTML a CSS (bez obrázku).
Posunutí prvku
Posunutí prvku se provádí pomocí funkce translate
. Následující kód posune prvek o 50px
na ose x (tedy doprava) a o 100px
na ose y (tedy dolů).
.prvek {
transform: translate(50px, 100px);
}
Procentuální hodnoty
Na rozdíl od position: relative
, kde například left: 50%
znamená posunutí prvku od levé strany (tedy doprava) o 50%
šířky rodiče, u transform
znamená translateX(50%)
posunutí prvku o 50%
jeho vlastní šířky.
Příklad užití
- Podobně jako
position: relative
.
Počátek
S vlastností transform
se pojí i vlastnost transform-origin
, která určuje bod, kolem kterého se transformace provádí. Výchozí hodnota je 50% 50%
, tedy střed prvku. Origin/počátek si můžeme třeba v případě rotace představit jako pomyslný špendlík, který do prvku píchneme a kolem kterého se prvek pak otáčí. První hodnota odpovídá pozici špendlíku na ose x, druhá na ose y.
Výchozí hodnota
.prvek {
transform-origin: 50% 50%;
}
Uprostřed nahoře
.prvek {
transform-origin: 50% 0;
}
Příklad užití
- Ikonka šipky pouze v HTML a CSS (bez obrázku).
Pro pokročilé
Zkosení
Matice
Matematický zápis všech vlastností výše dohromady.
3D
Skládání
Na prvek je možné aplikovat více transformací naráz pomocí řetězení.
.prvek {
transform: scale(2) rotate(45deg) translate(50px, 100px);
}
Moderní, zkrácený zápis
Prohlížeče relativně nově umí transformace bez vlastnosti transform
.
.prvek {
scale: 2;
rotate: 45deg;
translate: 50px 100px;
}
Cvičení
Postupuj podle zadání na github.com/…/Cviceni-Transformace.
Vycházej z předpřipraveného kódu v repozitáři. Máš v něm nachystaný už index.html
, styly a obrázky.