Oinarrizko CSSren printzipioak ikastean, estilo modularrak, berrerabilgarriak eta deskribatzaileak idazten irakasten da, mantentzea bermatzeko. Baina garatzaileek mundu errealeko aplikazioetan parte hartzen dutenean, askotan ezinezkoa da UI ezaugarriak gehitzea estiloak nahi gabeko eremuetara isuri gabe. Gai hau askotan elur-bolak bere burua betetzen duen begizta batean sartzen da; Teorikoki elementu edo klase bati dagozkion estiloak ez dagokien lekuan agertzen hasten dira. Horrek garatzailea behartzen du hautatzaile zehatzagoak sortzera, filtratutako estiloak gainidazteko, gero ustekabean estilo globalak gainidazteko, eta abar. Klase izenen konbentzio zurrunak, BEM adibidez, arazo honen irtenbide teoriko bat dira. BEM (Block, Element, Modifier) ​​metodologia CSS klaseak izendatzeko modu sistematikoa da, CSS fitxategien barruan berrerabilgarritasuna eta egitura bermatzeko. Horrelako izendatze-konbentzioek karga kognitiboa murriztu dezakete elementuak eta haien egoera deskribatzeko domeinu-lengoaia aprobetxatuz, eta behar bezala inplementatzen badira, aplikazio handietarako estiloak erraztu ditzakete mantentzea. Mundu errealean, ordea, ez da beti horrela funtzionatzen. Lehentasunak alda daitezke, eta aldaketarekin, ezarpena koherentea bihurtzen da. HTML egituran aldaketa txikiek CSS klase-izenen berrikuspen asko eska ditzakete. Frontend-aplikazio oso interaktiboekin, BEM ereduari jarraitzen dioten klase-izenak luzeak eta zailak izan daitezke (adibidez, app-user-overview__status--is-authentiting) eta izendapen-arauei guztiz ez atxikitzeak sistemaren egitura hautsi egiten du, eta, ondorioz, onurak ezeztatzen ditu. Erronka hauek ikusita, ez da harritzekoa garatzaileek esparruetara jo izana, Tailwind CSS esparru ezagunena izanik. Estiloen arteko espezifikotasun-gerra irabazi ezinezkoa dirudienari aurre egiten saiatu beharrean, errazagoa da CSS Cascaderi uko egitea eta erabateko isolamendua bermatzen duten tresnak erabiltzea. Garatzaileek erabilgarritasunei buruz gehiago ematen dute Nola dakigu garatzaile batzuk kaskadako estiloak saihesteko gogotsu daudela? Frontend tresna "modernoen" gorakada da - CSS-in-JS esparruak bezalakoak - horretarako bereziki diseinatua. Osagai espezifikoetara oso hedatuta dauden estilo isolatuekin lan egitea haize freskoa dirudi. Gauzak izendatzeko beharra kentzen du - oraindik frontend-eko zeregin gorrotatuenetakoa eta denbora gehien hartzen duena - eta garatzaileei produktiboa izatea ahalbidetzen die CSS herentziaren onurak guztiz ulertu edo aprobetxatu gabe. Baina CSS Cascade baztertzea bere arazoekin dator. Esate baterako, JavaScript-en estiloak konposatzeak konfigurazio astunak behar ditu eta askotan osagaien markaketa edo HTML-ekin nahasten diren estiloak ekartzen ditu. Izen-konbentzioak arreta handiz aztertu beharrean, hautatzaileak eta identifikatzaileak automatikoki sortzeko tresnak eraikitzeko aukera ematen diegu (adibidez, .jsx-3130221066), garatzaileek beste sasi-hizkuntza batekin jarraitu behar dutela berez. (Zure osagai guztien erabileraEfektuek zer egiten duten ulertzeko karga kognitiboa nahikoa ez balitz bezala!) Klaseak izendatzeko lana tresnei gehiago abstraitzeak esan nahi du oinarrizko arazketa sarritan garatzeko konpilatutako aplikazio-bertsio zehatzetara mugatzen dela, zuzeneko arazketa onartzen duten nabigatzailearen funtzioak aprobetxatu beharrean, garatzaileentzako tresnak adibidez. Ia sareak ematen duenari abstraitzeko erabiltzen ari garen tresnak arazteko tresnak garatu beharko genituzkeela dirudi, hori guztia CSS estandarra idaztearen "minetik" ihes egiteko. Zorionez, CSS funtzio modernoek CSS estandarra idaztea malguagoa izateaz gain, gu bezalako garatzaileei ahalmen handiago ematen diete kaskada kudeatzeko eta guretzat funtziona dezan. CSS Cascade Layers adibide bikaina da, baina bada arreta falta harrigarria lortzen duen beste eginbide bat, nahiz eta hori aldatzen ari den orain dela gutxi Baseline bateragarria bihurtu da. CSS @scope At-Rule CSS @scope at-rule estali dugun estilo-filtrazioek eragindako antsietate motaren sendabide potentziala dela uste dut, abstrakzioak eta eraikuntza-tresnetarako jatorrizko web abantailak arriskuan jartzera behartzen ez gaituena. "@scope CSS at-arauak aukera ematen dizu DOM azpizuhaitz espezifikoetako elementuak hautatzeko, elementuak zehatz-mehatz bideratuz gainidazteko zailak diren hautatzaile espezifikoegiak idatzi gabe eta zure hautatzaileak DOM egiturarekin estuegi lotu gabe." - MDN

Beste era batera esanda, estilo isolatuekin lan egin dezakegu kasu zehatzetan, herentziari, kaskadari edo kezkak oinarrizko bereizketari uko egin gabe.hori izan da front-end garapenaren printzipio gidari luzea. Gainera, arakatzailearen estaldura bikaina du. Izan ere, Firefox 146-k @scope-rako laguntza gehitu zuen abenduan, Baseline bateragarri bihurtuz lehen aldiz. Hona hemen BEM eredua erabiltzen duen botoi baten arteko konparaketa sinplea eta @scope araua:

.button .button__text { /* botoiaren testu estiloak */ } .button .button__icon { /* botoiaren ikonoen estiloak */ } .button--primary { primary button styles */ }

@esparrua (.primary-button) { span:first-child { /* botoiaren testu estiloak */ } span:last-child { /* botoiaren ikonoen estiloak */ } }

@scope arauak konplexutasun gutxiagorekin zehaztasuna ahalbidetzen du. Garatzaileak jada ez ditu mugak sortu behar klase-izenak erabiliz, eta horrek, aldi berean, jatorrizko HTML elementuetan oinarritutako hautatzaileak idazteko aukera ematen die, eta, ondorioz, CSS klase-izen eredu preskribatzaileen beharra ezabatzen du. Klase-izenen kudeaketaren beharra kenduz, @scope-k CSS-rekin lotutako beldurra arin dezake proiektu handietan. Oinarrizko Erabilera Hasteko, gehitu @scope araua zure CSS-ra eta txertatu erro-hautatzaile bat zein estilotan erabiliko diren: @esparrua () { /* Estiloak -ri dagozkionak */ }

Beraz, adibidez, estiloak

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