ved hjælp af postcss med bem - og jakkesæt metoder

ved hjælp af postcss med bem - og jakkesæt metoder,,,,, 30,,,,,,,, 7,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss. denne post er en del af en serie kaldet postcss dybt dyk. ved hjælp af postcss sammen med frækhed, stylus, eller lesspostcss dybt dyk: genveje og stenografi, i denne forelæsning, vi kommer til at lære at bruge postcss til udvikling af bem /jakkesæt stil css lettere og mere effektiv.,, disse to metoder, fastlægge en benævnelseskonvention for klasser, der gør det lettere at holde din stil tæt funktion orienteret, og hjælper andre udviklere erkender   formål   af   forskellige klasser, lige fra den måde, hvorpå de er opkaldt.,, ja var forløberen for denne type af klasse navngivning metode, som er skabt af yandex.dragten metode er en tilgang baseret på ja, men med visse tilpasninger og tilføjelser af nicholas gallagher.det er alt, ja, men for mange brugere, anses det for en forbedring.,, der arbejder med disse metoder bidrager afgjort til at producere bedre og mere velstrukturerede ccs.det svære er, at det kan blive hårdt manuelt på klassen navne, der kræves i denne struktur, og at holde styr på, hvor grupper indbyrdes kan blive en smule hovedpine.  ,, postcss bem - stik af med   malte maurice dreyer afhjælper disse spørgsmål gennem en kombination af genveje og russisk, som du vil lær at bruge, når vi bevæger os gennem denne forelæsning.,, men først, lad os få et hurtigt at bem - og - metoder, for at sikre, at de har et klart billede af fordelene ved at anvende den postcss bem - stik af, og af den måde, det er brugt.,, hurtigt at bem, block, ja, i blokke, er højtstående dele af et design byggesten, stedet er lavet af.en   blok, bør være en del af din hjemmeside, som er uafhængige af andre stykker, og kunne   teoretisk set indrykket i deres udformning, selv satte sig i en   blok.,,, f.eks. søgning form "blokke" på din hjemmeside kan benytte klasse  , søg form,.,,, element,,, element i bem er en underafdeling i en blok.de er godkendt af forsynet med en to - understrege, __,   separator   og et element navn til moderselskabet, block navn., f.eks. en   søgning form kan omfatte materialer, tekst område og fremsætte knap   elementer.deres klasse navne kan være  ,. search-form__heading,,  ,. search-form__text-field,   og  ,. search-form__submit-button,   hhv.,, transformer,, en transformer, anvendes til en blok eller element, som udtryk for en ændring i sin præsentation eller en ændring i dens medlemsstat.   de symboliserede, som tilføjer en - og en transformer navn til at blokere eller element i spørgsmål.,,   officielle bem sted   at transformer separatorer) bør være et enkelt understrege  , _,.men "ja" konvention af css retningslinjer af harry roberts   beskæftiger to streger  , - - og måske endnu mere udbredt og kendt, end de officielle bem - konventionen, f.eks. i et mønster, du kan ønske at fremlægge avanceret søgning er anderledes, at regelmæssige søge former, og dermed skabe transformer klasse  ,. search-form_advanced,   (officielle bem)   eller  ,. søgning form... avanceret,   (bem). i et andet eksempel, måske du skulle skifte form op på grund af en ændring i staten, f.eks. hvis ugyldig indhold netop er blevet fremlagt, og dermed skabe transformer,. search-form_invalid (officielle bem) eller   , søg form - ugyldig (bem).,,, hurtigt at jakkesæt, som omfatter faciliteter og komponenter.inden for rammerne af komponenter, der kan være modifikatorer, efterkommere og stater,.,,, som anvender en kombination af pascal (pascalcase), kamel (camelcase)   og streger.konventionerne håndhæve en grænse på   undertiden forvirrende   antal tegn og understreges det, at der kan anføres   i bem.for eksempel, bem - klasse  ,. search-form__text-field,   ville være  ,. searchform textfield,   i jakkesæt.,, nytteværdi,,.,, hvis du ikke vil have manuelt at fælde din projekt fra bunden, men du kan   downloade kilde filer, der er knyttet til denne forelæsning,   og ekstrakt   enten de leverede sodavand eller grynter   første projekt til en tom projekt mappe.så med en terminal eller kommando hurtig   pegede på mappen løb kommando  , new public management installere,.,, installere plugins, næste gang, du bliver nødt til at installere postcss bem - stik af.vi kan også installere et stik af, der kan arbejde med det ganske godt. postcss indlejrede.,, hvad enten du bruger sodavand eller grynter, løb følgende kommando ind i dit projekt folder:,, new public management installere postcss bem postcss indlejrede... redde dev, nu er vi klar til at indlæse plugins i dit projekt. lad plugins via sodavand,, hvis du bruger sodavand, tilføje disse variabler i henhold til de variabler, allerede i filen:,, var blevet = kræver ('postcss-bem) var indlejrede = kræver ('postcss-nested), tilføj hver af disse nye variable navne i dine  , forarbejdningsvirksomheder,   system:, var forarbejdningsvirksomheder = [ja, indlejrede], er en hurtig test, at alt er ved at løbe   kommando  , gulp css,   så kontrollere, at en ny stil. css "fil er dukket op idit projekt er "best" mappe.,, belastning plugins via grynter,, hvis du bruger grynter, ajourføre  , forarbejdningsvirksomheder,   objekt, som satte sig i  , optioner,   objekt, følgende:,, forarbejdningsvirksomheder: [kræver ('postcss-bem ') (), kræver ('postcss-nested ") ()], 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 dit projekt er "best" mappe.,, okay, du er klar til at gå.lad os lære at generere bem - og jakkesæt struktur.,, ja og jakkesæt med postcss bem, kan der være nogle vanskeligheder, udviklingen i bem - eller jakkesæt struktur, når vi skriver kode ud manuelt, som konstant at gentage de samme identifikatorer i klasse navne kan blive irriterende, og at holde styr på, hvilke elementer og efterkommere tilhører, der blokerer, og komponenter kan blive forvirrende.,, når du bruger postcss bem - men det bliver let at forstå strukturen af din kode - et overblik, og gentagelse i maskinskrivning klasse navne bliver praktisk taget ikkeeksisterende.,, og som struktur, trods sit navn, som standard postcss bem vil produktionen i henhold til jakkesæt syntaks snarere end nu skal du høre.du kan produktionen i bem - syntaks, som vi vil dække senere, men stik af hovedsagelig er konstrueret til at produktionen jakkesæt, så det er derfor, vi starter med jakkesæt syntaks.,,, der skaber en komponent, for at skabe en komponent, anvende syntaks @ komponent componentname (...),,, prøv det her. ved at tilføje en, searchform, komponent til din "src /stil. css" fil:,, @ komponent searchform (polstring: 0; margen: 0}, udarbejder det og din som kode skal være:,,. searchform (polstring: 0; margen: 0}, skaber en efterkommer,, at skabe en efterkommer, anvende syntaks @ efterkommer descname (...), satte sig i modervirksomheden komponent.,, tilføje en efterkommer hedder, textfield, inde i din, searchform, en komponent, som så:,, @ komponent searchform (polstring: 0;margen: 0 /* rede efterkommer under komponenten * /@ efterkommer textfield {grænse: 1px fast&#ccc;}}, efter at indsamle, du bør se:,,. searchform (polstring: 0; margen: 0}. searchform textfield {grænse: 1px fast&#ccc.}, skaber en transformer, skabe en transformer til en komponent med syntaks @ transformer navn (...), satte sig i del det virkninger.modifikatorer vil typisk være anbragt på toppen af din del, frem for nogen efterkommere og stater,.,, tilføje en transformer, der hedder, avancerede, til din searchform, komponent med følgende kode:,, @ komponent searchform (polstring: 0; margen: 0 /* typisk sted modifikatorer over efterkommere * /@ transformer avancerede (polstring: 1rem;} @ efterkommer textfield {grænse: 1px fast&#ccc;}},, recompile din kode, og du skulle se dit nye, avancerede komponenter transformer:,,. searchform (polstring: 0; margen: 0}. searchform - avancerede (polstring: 1rem.}. searchform textfield {grænse: 1px fast&#ccc.}, skaber en stat, de stater, der er skabt gennem syntaks @ ved navn (...), og som kan indføjes i et kom -komponent eller en slægtning, tilføje en stat. der hedder ugyldig, til din textfield, efterkommer med denne kode:,, @ komponent searchform (polstring: 0; margen: 0; @ transformer avancerede (polstring: 1rem;} @ efterkommer textfield {grænse: 1px fast&#ccc; /* dette skaber en stat for textfield efterkommer * /@ da ugyldig (grænse: 1px solid rød;}}}, nu når du samle din kode, du ser det, indeholder den nye, ugyldige, stat:,,. searchform (polstring: 0; margen: 0}. searchform - avancerede (polstring: 1rem.}. searchform textfield {grænse: 1px fast&#ccc.}. searchform-textfield.is-invalid {grænse: 1px solid rød;},, namespacing komponenter, kan du namespace deres komponenter,og alle efterkommere, modifikatorer og stater satte inden for dem, som omgiver dem med @ komponent namespace navn (...).du kan, hvis du vil pakke hele din stylesheet med denne namespace så alle dine klasser, automatisk er indledt med det.,, prøv det her ud af indpakningen alt dit kodeks hidtil med @ komponent namespace mig (...):,, @ komponent namespace min {@ komponent searchform (polstring: 0; margen: 0; @ transformer avancerede (polstring: 1rem;} @ efterkommer textfield {grænse: 1px fast&#ccc; @ da ugyldig (grænse: 1px solid rød;}}}}, efter at udarbejde, vil du se, at hver eneste af deres komponenter angives med mine -,.,,. min searchform {polstring: 0; margen: 0}. min searchform - avancerede (polstring: 1rem;}. min searchform textfield {grænse: 1px fast&#ccc;}. mine-searchform-textfield.is-invalid {grænse: 1px solid rød;}, skaber en stor nytteværdi, værker er skabt med syntaks @ nytte utilityname (...).du vil huske, at da om dit projekt, du installerede postcss indlejrede stik af.We did this as it can be very handy to use in unison with postcss-bem, as you’ll see in this example where we create a ,clearFix, utility:,,@utility clearFix { &:before, &:after { \t\tcontent: ""; \t\tdisplay: table; \t} \t&:after { \t\tclear: both; \t} \t/* If supporting IE 6/7 */ \t*zoom: 1; },,After adding the above code, compile and you’ll see this new utility has been created:,,.u-clearFix { /* If supporting IE 6/7 */ \tzoom: 1; } .u-clearFix:before, .u-clearFix:after { \tcontent: ""; \tdisplay: table; } .u-clearFix:after { \tclear: both; },,Generating BEM Structure,,To activate BEM syntax output in postcss-bem, pass the option ,style: 'bem', in your Gulpfile or Gruntfile like so:,,/* Gulpfile */ var forarbejdningsvirksomheder = [bem ({stil: "ja"}), indlejrede] /* gruntfile * /forarbejdningsvirksomheder: [kræver ('postcss-bem ') ({stil: "ja"}), kræver ('postcss-nested') ()], som standard postcss bem vil anvende de officielle separator for en transformer af en enkelt understrege  , _,.hvis det er vigtigt for deres projekt, at de benytter det fælles separator for to streger  , - - og   i stedet, du kan skifte ud for postcss bem - stik af med at tage node_modules /postcss bem - folder med dit projekt, åbning index.js, at budgetpost 15 og ændre denne:,, ja: {separatorer: {namespace: "- -", efterkommer: "__" transformer: "_ '}}, til:,, ja: {separatorer: {namespace:" _, efterkommer: "__" transformer: "- -"), og skaber en blok, fordi en "block" i bem korrelerer med en "bestanddel" i jakkesæt, anvende syntaks  , @ komponent blok navn (...),   til at generere en blok.,, at skabe en- form, block tilføje denne kode:,, @ komponent søgning form (polstring: 0; margen: 0}, og udarbejde og du skulle se:,,. søg form (polstring: 0; margen: 0}, skaber et element, som en "elementer" i bem korrelerer en "familie" i jakkesæt, kan de blive oprettet med syntaks  , @ efterkommer element navn (...),   indlejrede i modervirksomheden blok.,, at skabe en tekst inden element tilføje følgende:,, @ komponent søgning form (polstring: 0; margen: 0; @ efterkommer tekst område (grænse: 1px fast&#ccc;}}, om udarbejdelse, vil du se dit nye element er blevet oprettet:,,. søg form (polstring: 0; margen: 0}. search-form__text-field {grænse: 1px fast&#ccc.}, skaber en transformer, selvmen ja, giver modifikatorer til begge blokke og elementer, postcss bem - stik af vil kun behandle dem, hvis indlejrede i blokke og ikke elementer, som følge af den dragt, konventionen af modifikatorer anvendes til komponenter, der ikke   efterkommere. de kan være oprettet med   syntaks  , @ transformer navn (...), satte sig i sin modervirksomhed blok.,, tilføje en avanceret, transformer til din søgen form, komponent, som så:,, @ komponent søgning form (polstring: 0; margen: 0; @ transformer avancerede (polstring: 1rem;} @ efterkommer tekstfelt {grænse: 1px fast&#ccc)), og om det vil udarbejdelse udbytte:,,. søg form (polstring: 0; margen: 0}. search-form_advanced (polstring: 1rem.}. search-form__text-field {grænse: 1px fast&#ccc}, ikke forsyningsvirksomheder eller stater, men namespaces befinder sig i, og i bem tilstand, @ anvendelighed, og, når syntaxes ikke vil udarbejde @, til noget på grund af bem - ikke gør brug af værker eller stater,.,, selv om det er normalt ikke en del af bem, @ komponent namespace, syntaks stadig vil arbejde, hvis de ønsker at bruge det i din bem stylesheet.det vil præfiks dine klasser med  , navn,:,,. mit søgen form (polstring: 0; margen: 0}. min... search-form_advanced (polstring: 1rem;}. min... search-form__text-field {grænse: 1px fast&#ccc.}, lad os opsummere, nu ved du alt om hvordan genvej din bem - og - udvikling, og den samlede proces lettere.lad os opsummere, hvad vi har omfattet:,, ja og jakkesæt er klasse, at konventioner, der bidrager til at holde stylesheets funktion orienteret og organiseret, samt til at hjælpe andre udviklere erkender formålet med forskellige klasser. jakkesæt er blevet, men med nogle ekstra merværdi og justeringer, postcss bem - stik af giver genveje til at skabe bem - og sæt klasser, såsom @ komponent, @ efterkommer, @ transformer osv., stik af, gør det også muligt for kode indføjes på en hensigtsmæssig måde, f.eks. modifikatorer er indlejrede i komponent eller blokere de ændrer. namespacing kan gøres automatisk ved indpakning klasser med @ komponent namespace navn (...)., i næste lektion,, næste gang vi ser på en god måde at udnytte postcss, ogdet er ved at samle en værktøjskasse med stenografi og genveje, vi kan tage for at gøre vores kodning hurtigere og mere effektive.,, jeg vil se dig der.



Previous:
Next Page: