Pagina principala » Codificare » O privire în transformările CSS3 2D

    O privire în transformările CSS3 2D

    Acest articol este parte a noastră "Seria Tutoriale HTML5 / CSS3" - dedicat pentru a vă ajuta să vă faceți un designer mai bun și / sau un dezvoltator. Click aici pentru a vedea mai multe articole din aceeași serie.

    Modul de transformare este un plus extraordinar în CSS3, este nevoie de modul în care manipulăm elementele de pe un site web la nivelul următor.

    Există câteva experimente care mă uimi cu adevărat, exemple precum acesta. Cu toate acestea, nu vom construi ceva asemănător unei pictograme care să se transforme într-un fel într-un Autobot, deoarece poate fi copleșitoare și nu poate fi utilizată în viața reală.

    În schimb, de data aceasta, vom reveni și vom revizui elementele de bază ale transformărilor CSS3 2D pentru a vedea cum funcționează la un nivel fundamental.

    Sintaxa

    Modulul Transformări CSS3 ne permite în principiu să transformăm un element într-o anumită măsură, cum ar fi traducerea, scalarea, rotirea și înclinarea.

    Sintaxa oficială este transformare: metoda (valoare). Cu toate acestea, ca orice alte adăugări extraordinare ale CSS3 încă în stadii incipiente, browserele actuale necesită încă versiunea de sintaxă pentru a rula transformările. Deci, sintaxa completă s-ar dovedi așa:

     transformare: metoda (valoare); / * W3C Sintaxa oficială * / -o-transform: metoda (valoare); / * Opera 10,5+ * / -ms-transform: metoda (valoare); / * Internet Explorer 9.0+ * / -moz-transform: metoda (valoare); / * Firefox 3.6+ * / -webkit-transform: metoda (valoare); / * Chrome / Safari 3.2+ * / 

    De asemenea, metoda la care ne referim mai sus este transformare funcții, care ar putea fi înlocuită cu una dintre următoarele: Traduceți(), scară(), roti() sau oblic().

    Valoarea

    Cea mai mare parte a metodei va corespunde valorii Axa X și Axa Y. Dacă vă aduceți aminte de sistemul de coordonate carteziene din clasa matematică din liceu, principiul de bază este destul de similar, axa X reprezintă orizontală iar axa Y reprezintă vertical linia.

    Cu excepția rotațiilor. rotație va folosi coordonate polare care este exprimată în grade care variază de la 0 la 360.

    Valorile pentru toate metodele pot fi negative sau pozitive. Luați totuși o notă, deoarece pagina web este citită secvențial de sus în jos, ceea ce face ca axa Y din rețea să funcționeze opusă principiului original al coordonatelor carteziene. Aceasta înseamnă că atunci când adăugați o valoare negativă Axa Y, se va muta în partea superioară.

    Folosind Transformările

    Acum, să vedem următoarea demonstrație de bază pentru a vedea Transformarea în acțiune.

    Eu traduc

    Nu fiți înnegriți cu termenul Traduceți, nu va traduce limba străină. Traduceți aici este de fapt o metodă pentru deplasarea elementelor într-o anumită direcție.

    Metoda conține două valori; X și Y. Valoarea X așa cum am arătat mai sus, va lua elementul pe orizontală; la stânga sau la dreapta, in timp ce Y valoarea îl va lua vertical în partea de jos sau în partea de sus.

    Acum, să vedem câteva demonstrații simple de mai jos:

     div lățime: 100px; înălțime: 100px; transformă: traduce (100px, 250px);  

    Fragmentul de mai sus va muta elementul pentru 100 de pixeli la dreapta și 250 de pixeli în partea de jos.

     div lățime: 100px; înălțime: 100px; transformă: traduce (100px, 0);  

    Fragmentul de mai sus va muta elementul în dreapta spre dreapta pentru 100 de pixeli, pentru că vom zeroarea axei Y. Apoi, dacă vrem să mutăm elementul spre stânga, trebuie doar să setăm axa X în negativ, după cum urmează:

     div lățime: 100px; înălțime: 100px; transformă: traduce (-100px, 0);  
    • Traduceți demo

    Alternativ, suntem capabili să mutăm elementul într-o singură direcție cu aceste metode individuale; translateX () și translateY (), diferența este că fiecare din aceste metode acceptă o singură valoare.

    Deci, practic, vorbind transforma: traduce (-100px, 0) este, de asemenea, egal cu transformare: translateX (-100px).

    II - Scala

    scară ne permite măriți sau micșorați elementele de la dimensiunea reală. Valoarea scării este aceeași cu cea a scalei Traduceți mai sus, conține și X și Y. Singura diferență este că nu specificăm unitatea. Iată un exemplu:

     div lățime: 100px; înălțime: 100px; transformă: scala (1,5);  

    Exemplul de mai sus va mări div 1,5 sau 150% din dimensiunea reală, și din moment ce o scarăm în mod egal pentru ambele direcții X și Y, trebuie doar să o spunem într-o singură valoare. De asemenea, puteți să o declarați în acest fel transformare: scală (1,5,1,5); dacă doriți să obțineți mai multe detalii, va face același lucru.

    În plus, dacă vrem să reducem elementul, vom folosi în mod specific o valoare de la 0.999 până la absolut 0, cum ar fi exemplul de mai jos, care va reduce dimensiunea lui div pentru 50% sau jumătate:

     div lățime: 100px; înălțime: 100px; transformare: scala (0,5);  

    Dar, fiți atenți, dacă setați valoarea să fie absolută “0” div vor dispărea, deci, dacă nu aveți un motiv valid pentru a face acest lucru, nu aș recomanda să o faceți.

    • Scalare demo

    III - Rotiți

    Așa cum am menționat mai devreme în acest post, roti metoda folosește coordonate polare, deci valoarea este indicată în grade. Iată două exemple

    Fragmentul de mai jos va roti div 30 grade în sensul acelor de ceasornic.

     div lățime: 100px; înălțime: 100px; transforma: roti (30deg);  

    O valoare negativă, așa cum este ilustrată în exemplul de mai jos, va roti div în direcția opusă (în sens contrar acelor de ceasornic) în același grad.

     div lățime: 100px; înălțime: 100px; transforma: roti (-30deg);  
    • "Rotiți" demo

    IV - Skew

    oblic ne permite să creăm un fel de paralelogramă. De asemenea, conține două valori ale axelor X și Y. Cu toate acestea, valoarea în sine este indicată în grade, în loc de măsurători lineare pe care le folosim pentru scară sau Traduceți metodă. Iată un exemplu:

     div lățime: 200px; înălțime: 100px; transformare: oblic (30deg, 10deg);  
    • Demonstrație "Skew"

    V - Metodă multiplă

    transforma proprietatea nu se limitează la o singură metodă, de fapt putem include mai multe metode în declarații unice, cum ar fi:

     div lățime: 100px; înălțime: 100px; transformă: translateX (100px) roti (45deg);  

    Fragmentul de mai sus va muta elementul de 100px spre dreapta și, în același timp, va roti și 45 de grade.

    Metoda "Mai multe metode".

    Transformare Origine

    transfrom origine - așa cum sugerează și numele - este folosit pentru a controla punctul de plecare al transformării. Dacă nu declarăm explicit această proprietate cu următoarea sintaxă transformare-origine: X Y;, atunci browserul va lua valoarea implicită care este de 50% pentru X și 50% pentru Y.

    Acum, dacă specificăm transformare origine la 0 (X) 0 (Y), transformarea va începe la stânga sus.

    Din nou, toate browserele au nevoie de versiunea prefix pentru a apela această proprietate. Deci, aici este versiunea completă pentru a vă asigura că funcționează în cele mai multe browsere actuale:

     -webkit-transform-origin: X Y; -moz-transform-origine: X Y; -o-transform-origine: X Y; -ms-transform-origine: X Y; transformare-origine: X Y; 
    • Demo "Transformare-origine"

    Concluzie

    Am parcurs toate cele patru metode esențiale de transformare; traduce, scala, roti și înclina

    Cu toate acestea, după cum sa menționat, acest modul este încă în stadiu incipient, deci dacă veți aplica aceste metode în următorul site, asigurați-vă că acesta se degradează grațios pentru browserele incompatibile (nu mă refer la IE6 aici).

    În cele din urmă, puteți vedea toate demo-urile sau puteți descărca sursa din următoarele link-uri.

    • Demo
    • Descărcați sursa