Početna » šifriranje » Pogled u CSS3 2D transformacije

    Pogled u CSS3 2D transformacije

    Ovaj članak je dio našeg "Serija vodiča za HTML5 / CSS3" - posvećeni pomoći da postanete bolji dizajner i / ili programer. Kliknite ovdje da biste vidjeli više članaka iz iste serije.

    Modul transformacije je ogroman dodatak u CSS3, potrebno je način na koji manipuliramo elementima na web stranici na sljedeću razinu.

    Postoje neki eksperimenti koji me zaista zadivljuju, primjeri poput ovog. Međutim, nećemo graditi nešto poput CSS-ikone koja se nekako može pretvoriti u Autobot, jer može biti preplavljujuća i ne baš upotrebljiva u stvarnom životu.

    Umjesto toga, ovaj put ćemo se povući i pregledati osnove CSS3 2D Transformacija kako bismo vidjeli kako funkcionira na fundamentalnoj razini.

    Sintaksa

    Modul CSS3 Transformations nam u osnovi omogućuje transformaciju elementa u određenoj mjeri, kao što je prevođenje, skaliranje, rotiranje i iskrivljavanje.

    Službena sintaksa je transformacija: Metoda (vrijednosti). Međutim, kao i svi drugi CSS3 veliki dodaci koji su još uvijek u ranim fazama, trenutačni preglednici još uvijek trebaju verziju sintakse za izvođenje transformacija. Dakle, kompletna sintaksa će se pojaviti na sljedeći način:

     transformacija: metoda (vrijednost); / * W3C Službena sintaksa * / -o-transform: metoda (vrijednost); / * Opera 10.5+ * / -ms-transform: metoda (vrijednost); / * Internet Explorer 9.0+ * / -moz-transform: metoda (vrijednost); / * Firefox 3.6+ * / -webkit-transform: metoda (vrijednost); / * Chrome / Safari 3.2+ * / 

    Isto tako, metoda o kojoj govorimo gore je transformirati-funkcije, koji se mogu zamijeniti jednim od sljedećeg: Prevedi(), skala (), rotirati() ili ukošenje ().

    Vrijednost

    Većina vrijednosti metode odgovarat će Apscisa i Y-osa. Ako se sjećate kartezijanskog koordinatnog sustava iz vašeg Math razreda u srednjoj školi, osnovni princip je vrlo sličan, X-os predstavlja vodoravan i Y-osa predstavlja vertikala crta.

    Osim za rotacije. rotacija će koristiti polarne koordinate koji je izražen u stupnjevima koji se kreću od 0 do 360.

    Vrijednosti za sve metode mogu biti i negativne ili pozitivne. Samo uzmite bilješku, jer se web stranica čita sekvencijalno od vrha do dna, što čini os Y u webu suprotnom od izvornog principa kartezijanskih koordinata. To znači da kada dodate negativnu vrijednost u Y-osa, umjesto toga premjestit će se na vrh.

    Korištenje transformacija

    Sada ćemo vidjeti sljedeću osnovnu demonstraciju kako bismo vidjeli transformaciju u akciji.

    Ja prevodim

    Nemojte se zamutiti izrazom Prevedi, neće prevoditi strani jezik. Prevedi ovdje je zapravo metoda za pomicanje elemenata u nekom smjeru.

    Metoda sadrži dvije vrijednosti; x i Y. X vrijednost kao što smo gore istaknuli, element će uzeti vodoravno; lijevo ili desno, dok Y vrijednost će je uzeti vertikalno na dnu ili na vrhu.

    Sada ćemo vidjeti neke jednostavne demonstracije u nastavku:

     div širina: 100px; visina: 100px; transform: translate (100px, 250px);  

    Gornji isječak premjestit će element za 100px udesno i 250px na dno.

     div širina: 100px; visina: 100px; transform: translate (100px, 0);  

    Gornji isječak će premjestiti element desno za 100 piksela, jer smo nulirali os Y. Zatim, ako želimo pomaknuti element ulijevo, potrebno je postaviti os X na negativan način kako slijedi:

     div širina: 100px; visina: 100px; transform: translate (-100px, 0);  
    • Demo "Prevedi"

    Alternativno, u mogućnosti smo pomicati element u jednom smjeru s tim pojedinačnim metodama; translateX () i translateY (), razlika je da svaka od tih metoda prihvaća samo jednu vrijednost.

    Dakle, praktično govoreći, transformiraj: prevedi (-100px, 0) također je jednako transformiraj: translateX (-100px).

    II - Skala

    ljestvica metoda omogućuje nam Povećajte ili smanjite elementima iz njegove stvarne veličine. Vrijednost skale je ista kao vrijednost Prevedi gore navedenu metodu, ona također sadrži X i Y. Jedina razlika je što ne navodimo jedinicu. Evo primjera:

     div širina: 100px; visina: 100px; transformacija: mjerilo (1.5);  

    Gornji primjer će povećati div 1.5 ili 150% njegove stvarne veličine, i budući da je podjednako skaliramo za oba smjera X i Y, trebamo ga samo deklarirati u jednoj vrijednosti. Također ga možete proglasiti na ovaj način transformacija: mjerilo (1,5,1,5); ako želite više detalja, učinit će isto.

    Nadalje, ako želimo smanjiti element, posebno ćemo upotrijebiti vrijednost od 0,999 do apsoluta 0, kao primjer u nastavku, koji će smanjiti veličinu DIV-a za 50% ili polovicu:

     div širina: 100px; visina: 100px; transformacija: mjerilo (0.5);  

    Ali budite oprezni ako postavite vrijednost na apsolutnu vrijednost “0” div samo će nestati, tako da ako nemate valjani razlog za to, ne bih vam preporučio da to učinite.

    • "Scale" demo

    III - Rotiranje

    Kao što smo ranije spomenuli u ovom postu, rotirati metoda koristi polarne koordinate, tako da je vrijednost navedena u stupnjevima. Evo dva primjera

    Isječak u nastavku rotira div 30 stupnjeva u smjeru kazaljke na satu.

     div širina: 100px; visina: 100px; transformacija: rotiranje (30deg);  

    Negativna vrijednost, kao što je prikazano u donjem primjeru, rotira div u suprotnom smjeru (suprotno od kazaljke na satu) u istom stupnju.

     div širina: 100px; visina: 100px; transformacija: rotiranje (-30deg);  
    • "Rotiraj" demo

    IV - Iskrivljenost

    iskrivljavati Metoda omogućuje stvaranje neke vrste paralelograma. Također sadrži dvije vrijednosti X i Y osi. Međutim, sama vrijednost se navodi u stupnjevima, umjesto linearnim mjerenjima kakve koristimo za ljestvica ili Prevedi metoda. Evo primjera:

     div širina: 200px; visina: 100px; transformacija: izvrtanje (30deg, 10deg);  
    • "Skew" demo

    V - Višestruka metoda

    transformirati svojstvo nije ograničeno na rukovanje samo jednom metodom, u stvari možemo uključiti više metoda u pojedinačne deklaracije, kao što je ovaj:

     div širina: 100px; visina: 100px; transformacija: translateX (100px) rotirati (45deg);  

    Gornji isječak će pomaknuti element 100px udesno i istovremeno će se rotirati za 45 stupnjeva.

    "Multiple Method" demo.

    Izvor transformacije

    transfrom-podrijetla - kao što njegovo ime implicira - koristi se za kontrolu početne točke transformacije. Ako izričito ne deklariramo ovo svojstvo sa sljedećom sintaksom podrijetlo transformacije: X Y;, tada će preglednik uzeti zadanu vrijednost koja je 50% za X i 50% za Y.

    Sada, ako odredimo transformirati-podrijetlo do 0 (X) 0 (Y) transformacija će početi na vrhu lijevo.

    Ponovno, svim preglednicima je potrebna prefiksna verzija da bi nazvala ovo svojstvo. Dakle, ovdje je potpuna verzija kako bi se osiguralo da radi u većini trenutnih preglednika:

     -podrijetlo webkit-transformacije: X Y; -moz-transform-origin: X Y; -o-transform-origin: X Y; -ms-transform-origin: X Y; podrijetlo transformacije: X Y; 
    • Demo "Transform-origin"

    Zaključak

    Prošli smo kroz sve četiri bitne metode transformacije; prevoditi, mjeriti, rotirati i iskriviti

    Međutim, kao što je spomenuto, ovaj je modul još uvijek u ranoj fazi, pa ako te metode primijenite na sljedećoj web-lokaciji, provjerite da li se graciozno degradira za nekompatibilne preglednike (ovdje ne mislim na IE6).

    Konačno, možete pogledati sve demo datoteke ili preuzeti izvor iz sljedećih linkova.

    • Demo
    • Preuzimanje izvora