Dema ku prensîbên CSS-ya bingehîn fêr dibin, meriv tê fêr kirin ku meriv şêwazên modular, ji nû ve bi kar anîn, û raveker binivîsîne da ku domdariyê misoger bike. Lê gava ku pêşdebir bi serîlêdanên cîhana rastîn re têkildar dibin, bi gelemperî ne gengaz e ku meriv taybetmendiyên UI-yê bêyî şêwazên ku di nav deverên nedilxwaz de diherikin zêde bikin. Ev pirsgirêk pir caran berfê dikeve nav xelekek xweser; şêwazên ku ji hêla teorîkî ve li yek hêmanek an çînek têne veqetandin, li cîhê ku ne aîdê wan in dest pê dikin. Ev zorê dide pêşdebiran ku hilbijêrên hê bêtir taybetî biafirîne da ku şêwazên derketine paşde bixe, yên ku dûv re bi xeletî şêwazên gerdûnî û hwd. Peymanên navên çîna hişk, wekî BEM, yek çareseriyek teorîkî ye ji bo vê pirsgirêkê. Metodolojiya BEM (Block, Element, Modifier) ​​rêgezek birêkûpêk e ku navên çînên CSS-ê ye da ku ji nû vebikaranîna û avahiyek di nav pelên CSS de misoger bike. Peymanên binavkirinê yên bi vî rengî dikare bi karanîna zimanê domainê ji bo danasîna hêman û rewşa wan barkirina zanînê kêm bike, û ger rast were bicîh kirin, dikare şêwazên ji bo sepanên mezin domdar hêsantir bike. Di cîhana rastîn de, lêbelê, ew her gav wusa nabe. Pêşîn dikarin biguherin, û bi guhertinê re, pêkanîn nakokî dibe. Guhertinên piçûk ên strukturên HTML-ê dikarin gelek guhertoyên navên pola CSS hewce bikin. Digel serîlêdanên pêşîn ên pir înteraktîf, navên polê yên li gorî şêwaza BEM-ê dikarin dirêj û bêkêmasî bibin (mînak, app-bikarhêner-overview__status--es-teyîsandin), û bi tevahî negirêdan rêzikên navdêran avahiya pergalê dişkîne, bi vî rengî feydeyên wê înkar dike. Ji ber van dijwariyan, ne ecêb e ku pêşdebiran berê xwe dane çarçoweyan, Tailwind çarçoweya CSS-ê ya herî populer e. Li şûna ku hûn şer bikin ya ku dixuye ku di navbera şêwazan de şerekî taybetmendiyek neserkeftî ye, hêsantir e ku meriv dev ji CSS Cascade berde û amûrên ku îzolasyona bêkêmasî garantî dike bikar bîne. Pêşdebir Zêdetir Li Ser Karûbaran Disekinin Em çawa dizanin ku hin pêşdebiran dilgiran in ku ji şêwazên kaskadî dûr bikevin? Ew bilindbûna amûra pêşîn a "modern" e - mîna çarçoveyên CSS-in-JS - ku bi taybetî ji bo wê armancê hatî çêkirin. Karkirina bi şêwazên veqetandî yên ku bi hûrgulî ji pêkhateyên taybetî re têne veqetandin dikare wekî bêhnek nû xuya bike. Ew hewcedariya bi navkirina tiştan radike - hîn jî yek ji wan karên pêşîn ên herî nefret û demdirêj - û dihêle ku pêşdebiran bêyî ku bi tevahî feydeyên mîrasiya CSS-ê têbigihîjin an jî bikar bînin hilberdar bin. Lê qutkirina CSS Cascade bi pirsgirêkên xwe re tê. Mînakî, berhevkirina şêwazên di JavaScript-ê de pêdivî bi veavakirinên avakirina giran heye û bi gelemperî rê dide şêwazên ku bi awakî nebaş bi nîşankirina pêkhateyan an HTML-ê re tevlihev dibin. Li şûna ku bi baldarî lihevhatinên navdêran were fikirîn, em destûrê didin amûrên çêkirinê ku ji bo me hilbijêr û nasnameyan bixweber biafirînin (mînak, .jsx-3130221066), ku ji pêşdebiran re hewce dike ku di nav xwe de bi zimanekî din ê pseudo-yê re tevbigerin. (Mîna ku barkirina zanînê ya têgihîştina tiştê ku hemî karanîna pêkhateyên we dikinEffects jixwe ne bes be!) Zêdetir abstrakkirina karê navkirina çînan li amûrkirinê tê vê wateyê ku xeletkirina bingehîn bi gelemperî bi guhertoyên serîlêdana taybetî yên ku ji bo pêşkeftinê hatine berhev kirin têne sînordar kirin, ji bilî karanîna taybetmendiyên geroka xwecihî yên ku piştgirîkirina xeletkirina zindî piştgirî dikin, wek Amûrên Pêşdebir. Hema hema mîna ku em hewce ne ku amûran pêş bixin da ku em amûrên ku em bikar tînin ji bo jêbirina tiştê ku tevn berê peyda dike rast bikin - hemî ji bo ku em ji "êşa" nivîsandina CSS-ya standard dûr bikevin. Xwezî, taybetmendiyên CSS-ya nûjen ne tenê nivîsandina CSS-ya standard maqûltir dike, lê di heman demê de hêzek mezin dide pêşdebirên mîna me ku kaskadê birêve bibin û wê ji me re bixebitin. CSS Cascade Layers mînakek hêja ye, lê taybetmendiyek din heye ku kêmasiyek ecêb distîne - her çend ku ew nuha diguhezîne ku ew di van demên dawî de bûye Bingehîn lihevhatî. CSS @scope At-Rule Ez CSS @scope at-rule wekî dermanek potansiyel dihesibînim ji bo cûrbecûr xemgîniya ku me pê vekiriye, ya ku me neçar nake ku em ji avantajên weba xwemalî ji bo abstractions û amûrên çêkirina zêde tawîz bidin. "@scope CSS at-rule rê dide we ku hûn hêmanên di jêrdarên DOM-ê yên taybetî de hilbijêrin, hêmanên bi rastî bêyî nivîsandina hilbijêrên zêde-taybet ên ku ji holê rakirina wan zehmet e, û bêyî ku hilbijêrên xwe pir hişk bi avahiya DOM-ê ve girêbidin, armanc bikin."- MDN.

Bi gotinek din, em dikarin di rewşên taybetî de bi şêwazên veqetandî re bixebitin bêyî ku qurbana mîras, kavilbûn, an tewra veqetandina bingehîn a fikaran.ku prensîbek rêber a demdirêj a pêşkeftina pêşîn e. Zêdeyî, ew xwedan vegirtina geroka hêja ye. Bi rastî, Firefox 146 di Kanûna Pêşîn de piştgirî ji bo @scope zêde kir, ku ew ji bo yekem carê Baseline lihevhatî kir. Li vir berhevokek hêsan a di navbera bişkokek ku bi karanîna modela BEM-ê li hember qaîdeya @scope bikar tîne heye:

Rêbaza @scope rê dide rastbûna bi tevliheviya kêmtir. Pêşdebir êdî hewce nake ku bi karanîna navên polê sînoran biafirîne, ku, di encamê de, dihêle ku ew hilbijêran li ser bingeha hêmanên HTML-a xwemalî binivîsin, bi vî rengî hewcedariya pêşnumayên navên pola CSS-ê yên pêşniyarî ji holê rakin. Bi tenê rakirina hewcedariya rêveberiya navê polê, @scope dikare di projeyên mezin de tirsa ku bi CSS-ê ve girêdayî ye kêm bike. Bikaranîna bingehîn Ji bo ku dest pê bikin, qaîdeya @scope li CSS-ya xwe zêde bikin û hilbijêrek root-ê têxin nav kîjan şêwazên ku dê werin veqetandin: @scope () { /* Şêweyên ku ji re hatine veqetandin */ }

Ji ber vê yekê, mînakî, heke em şêwazên hêmanek

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free