CSS flip a animace

Jak v CSS otočit obsah kolem svislé nebo vodorovné osy.

4 minuty

Od IE 9 fungují v prohlížečích transformace za použití CSS vlastnosti transform. Jedním z mnoha, co tato vlastnost nabízí, je svislé a vodorovné otočení.

Pro Chrome 35, IE 9 a Safari 8 jsou nutné prefixy. Ve staré Opeře 12 otočení podle osy nefunguje (podporuje jen klasické otočení).

Zápis

.svisle-otoceni {
  transform: rotateY(20deg);
}
.vodorovne-otoceni {
  transform: rotateX(20deg);
}

Funkce rotateY a rotateX zajistí otočení kolem svislé, respektive vodorovné osy. Hodnota se zadává jako úhel. Kromě animací mají smysl hlavně hodnoty 0–180, potom nebo předtím (hodnota může být i záporná) se otočení opakuje.

Vodorovné otočení:0 deg 180 deg

Svislé otočení:0 deg 180 deg

Vodorovná osa:0 % 100 %

Svislá osa:0 % 100 %

Text

Vlastností transform-origin je možné upravit umístění osy, podle které se bude box překlápět.

Hodnotu je ideální zadávat v pixelech nebo procentech. Výchozí umístění je uprostřed (50%). Osu je možné mít i mimo element. První hodnota je posice vodorovné osy, druhá hodnota potom svislé.

element {
  transform-origin: 50% 50%; /* výchozí */
}

3D perspektiva

Zajímavěji může efekt vypadat při použití 3D perspektivy.

To funguje v Chrome, Firefoxu a nové Opeře. Čím nižší hodnota se zadá, tím je „3D efekt“ mocnější.

element {
  /* Webkit */
  -webkit-perspective: 500; 
  /* Firefox */
  -moz-transform-style: preserve-3d; 
  -moz-transform: perspective(500px);
}

Otočení jde animovat pomocí transition. V podporovaných prohlížečích se po najetí myší na „Text“ provede otočení.

Text

Samostatná ukázka

Praktické použití

Díky této transformaci jde vytvořit poměrně efektní změnu obsahu po najetí myši. (V nepodporovaných prohlížečích se změna odehraje bez animace.)

Ukázka animace

Živá ukázka

Co si myslíte o tomto článku?

Diskuse

Související články

CSS item-pack: balance – vyvážené rozložení flex položek

Vlastnost item-pack: balance rozděluje flex položky rovnoměrně mezi řádky, podobně jako text-wrap: balance vyvažuje řádky textu.

11 minut

CSS Container Queries – responsivní komponenty

Jak pomocí @container, container-type a container-name vytvářet komponenty, které se přizpůsobí velikosti svého rodiče místo viewportu.

16 minut

CSS Anchor Positioning – posicování elementů relativně k jiným

Jak pomocí anchor-name, position-anchor a funkce anchor() posicovat elementy relativně k jiným bez JavaScriptu.

6 minut

Centrování na webových stránkách

Moderní způsoby vertikálního i horizontálního centrování v CSS. Flexbox, Grid, margin auto a další techniky.

8 minut

Novinky e-mailem

Když budu mít něco opravdu zajímavého, můžu vám to poslat e-mailem

Přidej se k 500+ čtenářům
Jen kvalitní obsah
Žádný spam

Web jecas.cz píše Bohumil Jahoda, kontakt
Seznam všech článků · Témata · Zkratky
2013–2026