Iyo wiga amahame yibanze ya CSS, umuntu yigishwa kwandika modular, yongeye gukoreshwa, nuburyo bwo gusobanura kugirango yizere neza. Ariko iyo abitezimbere bitabiriye ibikorwa-byukuri-byisi, akenshi birasa nkaho bidashoboka kongeramo ibiranga UI hatabayeho uburyo bwinjira mubice bitateganijwe. Iki kibazo gikunze gukinisha urubura mukuzenguruka kwonyine; Imisusire ihanamye kubintu bimwe cyangwa urwego rutangira kwerekana aho bitari. Ibi bihatira abitezimbere gukora nibindi byihariye byatoranijwe kugirango barengere imiterere yasohotse, hanyuma kubwimpanuka irenga imiterere yisi yose, nibindi. Amasezerano y'izina rya Rigid, nka BEM, ni igisubizo kimwe kuri iki kibazo. Uburyo bwa BEM (Guhagarika, Element, Modifier) nuburyo butunganijwe bwo kwita amazina CSS kugirango tumenye neza imiterere n'imiterere muri dosiye ya CSS. Kwita amazina amahame nkaya arashobora kugabanya umutwaro wubwenge ukoresheje imvugo ya domaine kugirango usobanure ibintu na leta yabo, kandi biramutse bishyizwe mubikorwa neza, birashobora gukora stil kubikorwa binini byoroshye kubungabunga. Mu isi nyayo, ariko, ntabwo buri gihe bigenda gutya. Ibyihutirwa birashobora guhinduka, kandi hamwe nimpinduka, ishyirwa mubikorwa riba ridahuye. Impinduka nto kumiterere ya HTML irashobora gusaba CSS ibyiciro byinshi byo kuvugurura. Hamwe nimikorere yimbere-iherezo ryimikorere, amazina yicyiciro akurikiza icyitegererezo cya BEM arashobora kuba maremare kandi adakomeye (urugero, porogaramu-ukoresha-kureba -__status - ni-kwemeza), kandi kutubahiriza byimazeyo amategeko yo kwita izina byica imiterere ya sisitemu, bityo bikanga inyungu zayo. Urebye izo mbogamizi, ntabwo bitangaje kuba abitezimbere bahindukiriye urwego, Tailwind niyo mikorere ya CSS izwi cyane. Aho kugerageza kurwanya ibisa nkintambara idasanzwe idashoboka hagati yuburyo, biroroshye kureka CSC Cascade no gukoresha ibikoresho byemeza ko wigunga burundu. Abashoramari Bashingira Byinshi Mubikorwa Tubwirwa n'iki ko bamwe mubateza imbere bashishikajwe no kwirinda uburyo bwa kasike? Nukuzamuka kw "ibikoresho bigezweho" imbere-ibikoresho-nka CSS-muri-JS - byateguwe kubwintego. Gukorana nuburyo bwihariye bwiziritse ku bice byihariye birasa nkumwuka uhumeka. Bikuraho ibikenewe kuvuga amazina - biracyari kimwe mubikorwa byangwa kandi bitwara igihe cyambere - kandi bituma abaterankunga batanga umusaruro badasobanukiwe neza cyangwa ngo bakoreshe inyungu z'umurage wa CSS. Ariko gucukura CSS Cascade bizana ibibazo byayo. Kurugero, guhimba imisusire muri JavaScript bisaba ibishushanyo biremereye byubaka kandi akenshi biganisha kumyambarire idahwitse ivanze nibimenyetso cyangwa HTML. Aho kugirango dusuzume neza amazina yo kwita amazina, twemerera kubaka ibikoresho kugirango autogenerate abatoranya nibiranga kuri twe (urugero, .jsx-3130221066), bisaba abitezimbere kugendana nurundi rurimi rwihimbano kandi rwonyine. (Nkaho umutwaro wubwenge wo gusobanukirwa ibyo ibikoresho byawe byose ukoreshaIngaruka zidakora byari bihagije!) Ibindi gukuramo akazi ko kwita amazina ibyiciro kubikoresho bisobanura ko gukemura ibibazo byibanze akenshi bibujijwe kuri verisiyo yihariye yakusanyirijwe hamwe kugirango itere imbere, aho gukoresha uburyo bwa mushakisha kavukire bushigikira gukemura ibibazo, nkibikoresho byabateza imbere. Ninkaho dukeneye guteza imbere ibikoresho byo gukuramo ibikoresho dukoresha kugirango dukureho ibyo urubuga rumaze gutanga - byose kugirango duhunge "ububabare" bwo kwandika CSS isanzwe. Kubwamahirwe, ibiranga CSS igezweho ntabwo ituma gusa kwandika bisanzwe CSS byoroha ahubwo binatanga abitezimbere nkatwe imbaraga nyinshi zo gucunga caskade no kudukorera. CSS Cascade Layers ni urugero rwiza, ariko hariho ikindi kintu kibona kubura kwitabwaho - nubwo ibyo bihinduka none ko biherutse guhuza Baseline. CSS @scope At-Amategeko Ntekereza ko CSS @scope at-tegeko ariwo muti ushobora gukira muburyo bwo guhangayika-guterwa no guhangayika twatwikiriye, imwe iduhatira guteshuka ku mbuga za kavukire zo gukuramo no gukoresha ibikoresho byubaka. "@Scope CSS ku mategeko agushoboza guhitamo ibintu muburyo bwihariye bwa DOM, ugamije ibintu neza utabanje kwandika abatoranya birenze urugero bigoye kurenga, kandi utabanje guhuza abatoranya cyane kuburyo bwa DOM." - MDN
Muyandi magambo, turashobora gukorana nuburyo bwitaruye mugihe cyihariye tutitanze umurage, caskadi, cyangwa se gutandukana kwibanze kubibazoiryo ryabaye ihame rirerire riyobora iterambere ryimbere.
Byongeye, ifite amashusho meza cyane. Mubyukuri, Firefox 146 yongeyeho inkunga ya @scope mu Kuboza, bituma Baseline ihuza ubwambere. Hano hari igereranya ryoroshye hagati ya buto ukoresheje icyitegererezo cya BEM hamwe n amategeko ya @scope:
Amategeko ya @scope yemerera ibisobanuro hamwe nibigoye. Iterambere ntagikeneye gushiraho imipaka akoresheje amazina yishuri, nayo, abemerera kwandika abatoranya bashingiye kubintu bya HTML kavukire, bityo bikuraho ibikenerwa byizina rya CSS byanditse. Mugukuraho gusa ibikenewe gucunga amazina yishuri, @scope irashobora kugabanya ubwoba bujyanye na CSS mumishinga minini.
Ikoreshwa ryibanze
Kugirango utangire, ongeraho amategeko ya @scope muri CSS yawe hanyuma ushyiremo umuzi watoranije imizi kuburyo buzakoreshwa:
@scope (
Kurugero, niba dushaka kurwego rwuburyo bwa
@scope (nav) { a {/ * Ihuza ryimiterere muburyo bwa nav * /}
a: ikora {/ * Imikorere ihuza imiterere * /}
a: ikora :: mbere {/ * Ihuza rikora hamwe na pseudo-element ya styling yinyongera * /}
@media (ubugari bwa max: 768px) { a {/ * Guhindura ibisubizo * /} } }
Ibi, byonyine, ntabwo aribintu byingenzi. Ariko, ingingo ya kabiri irashobora kongerwaho murwego rwo gukora imipaka yo hasi, igasobanura neza urwego rwintangiriro nimpera.
/ * Ikintu icyo aricyo cyose imbere muri ul ntikizagira uburyo bwakoreshejwe * / @scope (nav) kugeza (ul) { a { ingano y'imyandikire: 14px; } }
Iyi myitozo yitwa donut scoping, kandi hariho uburyo bwinshi umuntu yakoresha, harimo urukurikirane rwibintu bisa, byihariye byatoranijwe bihujwe cyane nuburyo bwa DOM, a: ntabwo ari pseudo-uhitamo, cyangwa guha amazina yihariye ibyiciro ibintu biri muri