Perspektiva - Triky CSS

Anonim

Vlastnost perspectiveCSS dává prvku 3D prostor ovlivněním vzdálenosti mezi rovinou Z a uživatelem.

Síla účinku je určena hodnotou. Čím menší je hodnota, tím blíže se dostanete od roviny Z a působivější je vizuální efekt. Čím vyšší je hodnota, tím jemnější bude účinek.

Důležité: Vezměte prosím na vědomí, že vlastnost perspektivy neovlivňuje způsob vykreslení prvku; jednoduše umožňuje 3D prostor pro dětské prvky. Toto je hlavní rozdíl mezi transform: perspective()funkcí a perspectivevlastností. První dává hloubku prvku, zatímco druhý vytváří 3D prostor sdílený všemi jeho transformovanými dětmi.

/** * Syntax * perspective: none |  */ .parent ( perspective: 1000px; ) .child ( transform: rotateY(50deg); ) 
Podívejte se na toto pero!

Výše uvedené demo si klade za cíl ukázat rozdíl mezi funkcí a vlastností.

  • Na levé straně můžete vidět vlastnost aplikovanou na nadřazenou ( perspective: 50em) transformovaných prvků ( transform: rotateY(50deg)).
  • Na pravé straně je perspektiva aplikována z transformace přímo na podřízené ( transform: perspective(50em) rotateY(50deg)).

To ukazuje, jak nastavení perspektivy na rodiče způsobí, že všechny děti sdílejí stejný 3D prostor a tedy stejný úběžník.

Zkusme něco ještě chladnějšího: krychli s 3D transformacemi a perspektivou.

Podívejte se na toto pero!

Zde je způsob, jak je kostka vyrobena: spoléhá se na dva vnořené obálky (jeden dává perspektivu krychle a druhý obepíná všechny strany) a 6 prvků tvořících strany. Každý prvek má svoji vlastní transformaci, která míchá, překládá a rotuje v 3D prostoru (např. transform: rotateX(90deg) translateZ(1em)).

Pojďme skončit ukázkou představující, co by mohlo být základem designu skutečného světa: zeď fotografií + titulky využívající perspektivu a transformaci.

Podívejte se na toto pero!

Když se vznášejí nad zdí, děti se otočí zpět do své normální polohy, čímž účinek zruší.

Důležité! Použití perspektivy (s hodnotou odlišnou od 0 nebo žádnou) vytvoří nový kontext skládání.

Podpora prohlížeče

Chrome Safari Firefox Opera TJ Android iOS
12+ Žádný 10+ Žádný 10+ 3+ Žádný

Firefox 10-15 potřebuje -moz-, prohlížeče WebKit mohou potřebovat -webkit-