Hjemmeside » Coding » En titt på CSS3 2D-transformasjoner

    En titt på CSS3 2D-transformasjoner

    Denne artikkelen er en del av vår "HTML5 / CSS3 opplæringsserie" - dedikert til å gjøre deg til en bedre designer og / eller utvikler. Klikk her å se flere artikler fra samme serie.

    De Transformasjonsmodul er et enormt tillegg i CSS3, det tar måten vi manipulerer elementer på et nettsted til neste nivå.

    Det er noen eksperimenter som virkelig forbløffer meg, eksempler som denne. Vi kommer imidlertid ikke til å bygge noe som et CSS-eneste ikon som på en eller annen måte kan forvandles til en autobot, da det kan være overveldende og ikke helt anvendelig i det virkelige liv også.

    I stedet, denne gangen, vil vi gå tilbake og se på grunnleggende om CSS3 2D Transformations for å se hvordan det fungerer på et grunnleggende nivå.

    Syntaxen

    CSS3 Transformations-modulen lar oss i utgangspunktet forvandle et element til en viss grad, for eksempel oversetting, skalering, roterende og skjeving.

    Den offisielle syntaksen er transform: metode (verdi). Men som alle andre CSS3 flotte tillegg som fremdeles er i de tidlige stadiene, trenger de nåværende nettleserne fortsatt syntaksversjonen til å kjøre transformasjonene. Så, den komplette syntaksen skulle vise seg slik:

     transformere: metode (verdi); / * W3C Offisiell syntaks * / -o-transform: metode (verdi); / * Opera 10.5+ * / -ms-transform: metode (verdi); / * Internet Explorer 9.0+ * / -moz-transform: metode (verdi); / * Firefox 3.6+ * / -webkit-transform: metode (verdi); / * Chrome / Safari 3.2+ * / 

    Også metoden vi refererer til ovenfor er transform-funksjoner, som kan erstattes med ett av følgende: oversette(), skala (), rotere() eller skew ().

    Verdien

    De fleste av metodens verdi vil tilsvare X-aksen og Y-aksen. Hvis du husker det kartesiske koordinatsystemet fra din matsklasse i videregående skole, er grunnprinsippet ganske lik, X-aksen representerer horisontal linje og Y-aksen representerer vertikal linje.

    Bortsett fra rotasjoner. De rotasjon vil bruke polære koordinater som uttrykkes i grader som spenner fra 0 til 360.

    Verdiene for alle metodene kan være både negative eller positive. Bare ta et notat skjønt, siden nettsiden leses sekvensielt fra topp til bunn som gjør at Y-aksen på nettet virker motsatt fra det opprinnelige prinsippet om kartesiske koordinater. Dette betyr at når du legger til en negativ verdi til Y-aksen, det vil flytte til toppen i stedet.

    Bruk av transformasjonene

    Nå, la oss se følgende grunnleggende demonstrasjon for å se Transformation in action.

    Jeg oversetter

    Ikke vær overskyet med begrepet oversette, det vil ikke oversette fremmedspråk. De oversette her er faktisk en metode for å flytte elementer i en eller annen retning.

    Metoden inneholder to verdier; X og Y. de X-verdi som vi påpekte ovenfor vil ta elementet horisontalt; til venstre eller til høyre, mens Y verdien vil ta det vertikalt til bunnen eller til toppen.

    Nå, la oss se noen enkle demonstrasjoner nedenfor:

     div bredde: 100px; høyde: 100px; transformere: oversette (100px, 250px);  

    Utsnittet over vil flytte elementet til 100px til høyre og 250px til bunnen.

     div bredde: 100px; høyde: 100px; transformere: oversette (100px, 0);  

    Utgangen ovenfor vil flytte elementet til høyre for 100px, fordi vi nullstiller Y-aksen. Så, hvis vi vil flytte elementet til venstre, trenger vi bare å angi X-aksen negativt, som følger:

     div bredde: 100px; høyde: 100px; transformere: oversette (-100px, 0);  
    • "Oversett" demo

    Alternativt kan vi flytte elementet i en enkelt retning med disse individuelle metodene; translateX () og translateY (), forskjellen er at hver av disse metodene aksepterer bare en verdi.

    Så, praktisk talt, transformere: oversette (-100px, 0) er også lik transformere: translateX (-100px).

    II - Skala

    De skala Metoden tillater oss å forstørre eller redusere elementene fra den faktiske størrelsen. Skalens verdi er den samme som oversette metode ovenfor, inneholder den også X og Y. Den eneste forskjellen er at vi ikke angir enheten. Her er et eksempel:

     div bredde: 100px; høyde: 100px; transformere: skala (1,5);  

    Eksemplet ovenfor vil forstørre div 1,5 eller 150% av sin faktiske størrelse, og siden vi skaler det like for både X- og Y-retningene, trenger vi bare å erklære det i en verdi. Du kan også deklarere det på denne måten transformere: skala (1,5,1,5); Hvis du vil gå mer detaljert, vil det bare gjøre det samme.

    Videre, hvis vi ønsker å redusere elementet, vil vi spesifikt bruke en verdi fra 0.999 til absolutt 0, som eksempelet nedenfor, som vil redusere størrelsen på diven for 50% eller halvparten:

     div bredde: 100px; høyde: 100px; transformere: skala (0,5);  

    Men vær forsiktig, hvis du setter verdien til å være absolutt “0” de div vil bare forsvinne, så hvis du ikke har en gyldig grunn til å gjøre det, vil jeg ikke anbefale å gjøre det.

    • "Skala" demo

    III - Roter

    Som vi tidligere nevnte i dette innlegget, rotere Metoden bruker polære koordinater, så verdien er oppgitt i grader. Her er to eksempler

    Utsnittet nedenfor roterer div 30 grader med klokken.

     div bredde: 100px; høyde: 100px; transformer: roter (30deg);  

    En negativ verdi, som illustrert i eksempelet nedenfor, vil rotere div i motsatt retning (moturs) i samme grad.

     div bredde: 100px; høyde: 100px; transformer: roter (-30deg);  
    • "Rotere" demo

    IV - Skew

    De skew Metoden gjør det mulig for oss å lage en slags parallellogram. Den inneholder også to verdier av X- og Y-aksen. Imidlertid er verdien selv oppgitt i grad, i stedet for lineære målinger som vi bruker for skala eller oversette metode. Her er et eksempel:

     div bredde: 200px; høyde: 100px; transformere: skew (30deg, 10deg);  
    • "Skew" demo

    V - Flere metoder

    De forvandle Eiendommen er ikke begrenset til å håndtere bare en metode, faktisk kan vi inkludere flere metoder i enkeltdeklarasjoner, slik som dette:

     div bredde: 100px; høyde: 100px; transformere: translateX (100px) rotere (45deg);  

    Ovennevnte kutt vil flytte elementet 100px til høyre og samtidig roterer det også 45 grader.

    "Multiple Method" -demo.

    Transformere opprinnelse

    De transfrom-opprinnelse - som navnet antyder - brukes til å kontrollere startpunktet for transformasjonen. Hvis vi ikke eksplisitt erklærer denne egenskapen med følgende syntaks transformere-opprinnelse: X Y;, da vil nettleseren ta standardverdien som er 50% for X og 50% for Y.

    Nå, hvis vi spesifiserer forvandle-opprinnelse til 0 (X) 0 (Y) vil transformasjonen starte øverst til venstre.

    Igjen, alle nettleserne trenger fremdeles prefiksetversjonen for å ringe denne egenskapen. Så, her er den komplette versjonen for å sikre at den fungerer i de fleste nettlesere:

     -webkit-transform-opprinnelse: X Y; -moz-transform-opprinnelse: X Y; -O-transform-opprinnelse: X Y; -ms-transform-opprinnelse: X Y; transformere-opprinnelse: X Y; 
    • "Transform-origin" -demo

    Konklusjon

    Vi har kommet gjennom alle de fire viktige transformasjonsmetodene; oversette, skala, rotere og skjede

    Men som nevnt, er denne modulen fortsatt i det tidlige stadiet, så hvis du vil bruke disse metodene på ditt neste nettsted, sørg for at det brytes grasiøst for uforenlige nettlesere (jeg henviser ikke til IE6 her).

    Til slutt kan du se alle demoene eller laste ned kilden fra følgende linker.

    • Demo
    • Last ned kilde