postcss dybt dyk. preprocessing med "precss"

postcss dybt dyk. preprocessing med "precss",,,, i de sidste to tutorials, vi kiggede på måder at anvende precss på afsluttet stylesheets   at øge deres cross - kompatibilitet og optimering, hovedsagelig som en post - processor.   i denne lektion du lærer til brug postcss som før, - - processor, på samme måde   du ville bruge stylus,   sass. mindre, er der to måder du kan gå med postcss for preprocessing.et er at vælge dine egne plugins at tilføje preprocessor funktionalitet, du vil have, og den anden er at installere en pakke forudvalgt plugins, så du er klar til at gå med det samme. vi begynder med den hurtigste og letteste fremgangsmåde, at installere den fremragende   precss pakke plugins, skabt af jonathan neal.   i læren efter dette vi vil bevæge os ind i, hvordan kan du samle din egen preprocessor udelukkende ved hjælp af de funktioner, det vil du. resten vil tro, de har   et vist kendskab til forhold, der almindeligvis findes i preprocessors som   stylus, være næsvis eller mindre.det er kun, fordi vi skal fokusere på, hvordan kan du bruge de samme typer   elementer   via postcss snarere end, hvad de karakteristiske træk   faktisk  .   sagde om, selv om de aldrig har anvendt en preprocessor før, det er det perfekte sted at starte, prøv. ud precss lever, vil vi gennemgå, hvordan til at fælde en sodavand eller grynter projekt ved precss i næste afsnit, hvis du gerne vil tage en genvej, bare   nu), kan du alternativt bruge levende demo   legeplads   at afprøve den kode, vi løber igennem i denne lektion.kode kan skrives ind i venstre vindue, og det vil automatisk indsamling for dig og udstilling i højre vindue.,,,, precss levende redaktør: http: //jonathantneal. github. io /precss,,, før dit projekt, er det første, du skal gøre, er at bruge dit projekt? enten sodavand eller grynter, afhængigt af deres præferencer.hvis du ikke allerede har en forkærlighed for det ene eller det andet anbefaler jeg med sodavand, som du får brug for mindre kode for at nå de samme mål, kan du læse om, hvordan vi skal fælde sodavand eller grynter projekter for postcss i den foregående tutorials,,,,.,, hvis du ikke vil have manuelt "dit projekt fra bunden, men du kan   downloade kilde filer, der er knyttet til denne forelæsning,   og ekstrakt   enten forudsat sodavand eller grynter   første projekt til en tom projekt mappe.  ,,, med en terminal eller kommando hurtig pegede på mappen, løb kommando, new public management installere,.,, installere precss, om du bruger sodavand eller grynter, installere precss i dit projekt med kommandoen:,, new public management installere precss... redde dev, belastning som en slurk stik af, hvis du er  med sodavand, tilføje denne variabel under variabler allerede i filen:,, var precss = kræver ('precss), nu tilføje nye variable navn i din  , forarbejdningsvirksomheder,   system:,, var forarbejdningsvirksomheder = [precss], er en hurtig test, at alt er ved at   kommando  , gulp css,   så kontrollere, at en ny stil. css "fil er dukket op i dit projekt er" best "mappe.,, belastning som en gal stik af,, hvis du bruger grynter, ajourføre  , forarbejdningsvirksomheder,   objekt, som satte sig i  , muligheder,   objekt, følgende:,, forarbejdningsvirksomheder: [kræver ('precss') ()], er en hurtig test, at alt er ved at løbe   kommando  , grunt postcss,   så kontrollere, at en ny stil. css" fil er dukket op i yvores projekt er "best" mappe.,, nu har du alt, hvad du skal bruge precss installeret og klar til at gå.   betyder dette, at vi er klar til at begynde at     gennem nogle af de preprocessing kapacitet af precss, og hvordan de kan bruges.,,,,,, preprocessing via "precss", generelt, precss syntaks er mest ligner den frækhed.men det gør brug af sin egen enestående muligheder, som vi tager hen ad vejen.  , note: på grund af den frækhed, som precss syntaks, vil du finde en fræk syntaks sprittus vil fungere bedst for dig i din favorit tekst redaktør.,, russisk, har noget til fælles, redebygning alle tre af de store preprocessors, dvs. stylus, fræk og mindre, og det er også til stede i precss.redder i precss sker på samme måde som i frækhed og mindre ved, at   selektorer i krøllet parentes af andre udvælgere.,, evnen til at anvende det, &, symbol, har forældre til børn i komitéen dobbeltarbejde komitéen også virker på samme måde som i andre preprocessors precss., prøv at tilføje følgende indlejrede koden til din "src /stil. css" fil:,,. menu (bredde: 100%; en (tekst): ingen;} &:: før (indhold: ""), udarbejder deres css med  , gulp css eller  , grynt postcss, og din "best /stil. css" fil burde have evalueret den indlejrede kode i følgende:,,. menu (bredde: 100%} menu et (tekst): ingen.}. menu: før (indhold: "'}, variabler, variabele er en anden type funktioner, fælles for alle preprocessors, og de er   indgår i   precss.det eneste, der typisk forskellige mellem de enkelte preprocessor er   syntaksen angiver variabler.,, mindre variabler begynde med en  , @, symbol og en  : før værdi.  , stylus variabler kan vælge at anvende en   $, symbol og en   =, underskrive inden den værdi.  , sass variabler bruge en   $, symbol og en  :, før den værdi, i overensstemmelse med   den precss tendens til at   bruger nu som syntaks, det lægger en   $, før de variable navn og en  :, før den værdi,  , prøv. ved hjælp af precss variabler ved at tilføje det til din "src /stil. css" fil:,, $text_color:𸮃 organ (farve: $text_color;}, efter recompiling, du skulle se det her som kode:,, organ (farve:𸮃}, hypoteser, hypoteser, dvs. hvis end anden logik, er et element, som er meget stærk i både nu og stylus.mindre er bevogtet mixins, men giver de ikke helt den samme grad af magt.hypoteser, er til stede i precss og   følger samme syntaks som næsvished, ved hjælp af  , @, hvis, og  , @ andet.  , tilføje dette eksempel - koden til dit "src /stil. css" fil:,, $column_layout: 2. kolonne (@ hvis $column_layout = = 2 (bredde: 50% flyder: venstre} @ andet (bredde: 100%), i ovennævnte eksempel, vi har,. kolonne, klasse produktion forskelligt afhængigt af, hvis vi vil have en kolonne indretning eller en to - kolonne layout.vi har $column_layout, variable, der, 2, betyder, at vi skal se, bredde: 50% flyder: venstre; produktionen i vores klasse.,, samle din fil, og du skulle se efter i din "best /stil. css" fil.,,. kolonne (bredde: 50%; flyde: venstre}, note: postcss avancerede variabler, stik af, der giver denne hypoteser, funktionalitet, stadig er ret nyt, og jeg har mødt nogle uventede resultater, når de bruger det til mere komplekse hypoteser, men jeg er sikker på, at det vil blive ajourført   i den nærmeste fremtid.  , er der en alternative stik af, der kan anvendes til hypoteser, der hedder postcss hypoteser.vi dækker over, hvordan du kan bruge det stik af (hvis du vælger) i næste lektion, "rullende din egen preprocessor".,, havregryn -, @, @ hver, er der to typer loops til rådighed i precss,  , @ for, og  , @ hver loops.begge disse anvende en tilgang, der er ligesom at være næsvis."til" løkker, lad du kredsløb gennem en numerisk tæller, mens "hver" løkker, lad du cykle gennem   en liste over vareposter,.,,., løkker, i en  , @ for,   loop er der en "mod" variabel, der holder øje med, hvor du er   i cykling gennem deres numeriske - tæller, typisk som $jeg.For example, when iterating from 1 to 3 there will be three loops; in the first ,$i, will equal ,1,, the second it will equal ,2, and the third it will equal ,3,. ,,This ,$i, counter variable can be interpolated into both selectors and rules, which can be very handy for things like generating ,nth-of-type(), rules and calculating widths.,,Add this code to your “src/style.css” file to try out a ,@for, loop:,,@for $i from 1 to 3 { p:nth-of-type($i) { \t\tmargin-left: calc( 100% /$i ); \t} },,After compilation you should see this code expanded out to:,,p:nth-of-type(1) { margin-left: calc( 100% /1 ); } p:nth-of-type(2) { margin-left: calc( 100% /2 ); } p:nth-of-type(3) { \tmargin-left: calc( 100% /3 ); },,,Note,: numbers ,1,,2, and ,3, have been inserted into each of the above styles.,,@each, Loops,,An ,@each, loop cycles through a list of items instead of numbers. As with ,@for, loops, the variable representing the loop’s current item can be interpolated into selectors and rules. Note that to interpolate into a string, you need to insert a set of brackets into the variable name in the format ,$(var),. ,,Give using PreCSS ,@each, loops a go by adding the following example code:,,$social: twitter, facebook, youtube; @each $icon in ($social){ .icon-$(icon) { \t\tbackground: url('img/$(icon).png'); \t} },,After compilation you should see the following CSS has been generated:,,.icon-twitter { background: url('img/twitter.png'); } .icon-facebook { background: url('img/facebook.png'); } .icon-youtube { \tbackground: url('img/youtube.png'); },,Mixins,,The syntax for mixin creation is one aspect of PreCSS that’s a little different to Sass. ,,In Sass, to define a mixin you use the syntax ,@mixin mixin_name($arg1, $arg2) {...}, and then use it with ,@include mixin_name(pass_arg1, pass_arg2);,.,,In PreCSS, on the other hand, you define a mixin with the syntax ,@define-mixin mixin_name $arg1, $arg2 {...}, and use it with ,@mixin mixin_name pass_arg1, pass_arg2;,. ,,Add this example to your “src/style.css” file:,,@define-mixin icon $network, $color { .button.$(network) { \t\tbackground-image: url('img/$(network).png'); \t\tbackground-colof: $farve;}} @ mixin ikon twitter, blå; @ mixin ikon youtube, red, om udarbejdelse, du bør se:,,. button.twitter {baggrund billede: url ('img /twitter. men heller ikke dér er menneskene sikre); baggrund farve: blå,}. button.youtube {baggrund billede: url ('img /youtube. men heller ikke dér er menneskene sikre); baggrund farve: rød;}, note: argumenter, der passerer gennem mixin kan være interpoleret til udvælgere og strenge med samme tilgang som nævnt i  , @ hver, løkker, ovenfor, i det format,   $(var),.,, ved hjælp af @ mixin indhold, som - som bruger mixins som vist ovenfor, kan de også være klar til at forbruge blokke af indhold vedtaget, når det mixin.dette er stort set den samme proces, som siger " , @ indhold.  , f.eks. ændre mixin fra ovenstående eksempel, markedsføring, @ mixin indhold, hvor vil du have en bestået blok af   indhold skal anføres som så:,, @ definere mixin ikon $netværk, $farve (. knap. $(net) (baggrund billede: url ('img /$(net). men heller ikke dér er menneskene sikre); baggrund farve: $farve; @ mixin indhold), når en mixin indeholder @ mixin indhold,   anvendes,  , skal det anbringes med krøllet parentes, snarere end på en enkelt linje og ender med et,,,,  , eller også vil det mislykkes at udarbejde.,, opdatere din kode, så din mixin kalder ser sådan ud:,, @ mixin ikon twitter, blå (bredde: 3rem;} @ mixin ikon youtube, rød (bredde: 4rem;}, efter bearbejdning, dette bør give de follpå grund af kode - optagelse af, bredde,   indhold igennem hver anvendelse af et mixin:,,. button.twitter {baggrund billede: url ('img /twitter. men heller ikke dér er menneskene sikre); baggrund farve: blå, bredde: 3rem.}. button.youtube {baggrund billede: url ('img /youtube. men heller ikke dér er menneskene sikre ') farve: rød; baggrund; bredde: 4rem;}, udvider, udvider svarer til mixins på en måde, som de er udformet til at give dig til genbrug blokke af koden.men tanken bag "udvides" er at skabe et retsgrundlag, der er fastsat i kode, du ved, du kommer til at bruge på nøjagtig samme måde, mange gange for et bestemt element.  , kan du så   efterfølgende udvide på basen med yderligere ikke - standard kode., i precss, syntaks for at definere en udvide er  , @ definere udvide extend_name (...),.,, i din "src /stil. css" fil, definere en forlængelse med basen styles for en afrundet knap så:,, @ definere udvide rounded_button {grænse radius: 0.5rem; polstring: 1em; kantbredde: 0.0625rem; grænseoverskridende stil: fast;}, denne standardsæt af stilarter er nu klar   forlænges med yderligere kode, f.eks.   om ting som baggrund, farve,   og grænse farve.dette gøres ved hjælp af syntaks  , @ udvide extend_name; at indføre basen styles defineret i forlængelse af.  , tilføje dette eksempel kode, under kode du tilføjede:,,. blue_button {@ udvide rounded_button; grænseoverskridende farve:f74d1; baggrund farve:b8eff red_button (;). @ udvide rounded_button; grænseoverskridende farve:&#c41a1e; baggrund farve:&#ff2025;},, hvor, @ udvide rounded_button;, anvendes, hele indholdet af den udvide indsættes.,, samle din stil, og du skal få:,,. blue_button,. red_button {grænse radius: 0.5rem; fyld: 1em; kantbredde: 0.0625rem; grænseoverskridende stil: faste;}. blue_button {grænse farve:f74d1; baggrund farve:b8eff.}. red_button {grænse farve:# c41a1e; baggrund farve:&#ff2025;}, bemærker også, at stilen til fælles,. blue_button og. red_button, klasse er blevet kombineret med effektivitet.,, import, stik af, der anvendes til inlining stylesheets via  , @ import, er det samme, vi er omfattet i den foregående resten af serie:   for minification og optimering.for lidt om, hvordan det fungerer i hovedet og har læst af den lukkede med overskriften "inline - /kombinere filer med @ import.", i forbindelse med anvendelse af postcss som en preprocessor, importen blevet endnu mere nyttige, fordi de giver dig mulighed for at oprette   fragmenter, noget du kan anvendes til fra andre preprocessing løsninger.for eksempel, du kunne fælde en "komplet" mappe, separate dit projekt i logisk diskrete delvis filer   derefter importerer dem sådan her:,, @ import "delvise /_variables. css" @ import "delvise /_utilities. css" @ import "delvise /_mixins. css" @ import "delvise /_extends. css", lad os opsummere, håber jeg, du har   et indblik i, hvordan magtfulde postcss kan være som en preprocessor ved hjælp af precss pakke.for at opsummere, hvad vi har dækket over:,, kan du prøve precss bor på   http: //jonathantneal. github. io /precss., redebygning i precss fungerer på samme måde som frækhed og mindre, variabler i precss bruger samme syntaks som sass., hypoteser, er til stede i precss ved hjælp af syntaks @ hvis og @., @ og @ hver loops er til rådighed. precss mixins er defineret med syntaks:,, @ definere mixin mixin_name $arg1, $arg2   (...), precss mixins anvendes med syntaks:,, @ mixin mixin_name pass_arg1, pass_arg2;,, @ mixin indhold kan anvendes på samme måde som frækhed, @ indhold, går i precss er defineret med syntaks:,, @ definere udvide extend_name (...), udvider anvendes med syntaks:,, @ udvide extend_name;,,, @ import, inlines eksterne css filer, navnlig helpful for anvendelse af fragmenter, i næste lektion,, precss er et fantastisk projekt, at   sammen nogle fremragende sprog, udvidelse plugins og gøre postcss baseret preprocessing ret meget ud og lege.det er næsten alle de funktioner, de fleste preprocessor brugere har vænnet os til, og det er en hurtig "ballade" måde at få postcss preprocessor bolden., ved hjælp af precss   er en af de to metoder til postcss preprocessing vi nævnte i begyndelsen af denne forelæsning.   den anden metode er at fælde din,, preprocessor, hånd - det sprog, udvidelse plugins, der passer til din egen projekter eller kodning stil.denne handel er, at det er en smule mere opsætning, men til gengæld får frihed til at sammensætte en preprocessor, der fungerer som du vil have det, vil du lære at gøre det   i næste lektion, "rul dit eget preprocessor".




Previous:
Next Page: