Lè w ap aprann prensip CSS debaz yo, yo anseye yon moun pou yo ekri estil modilè, ki kapab itilize ankò ak deskriptif pou asire antretyen. Men, lè devlopè yo patisipe nan aplikasyon pou mond reyèl la, li souvan santi li enposib pou ajoute karakteristik UI san estil yo koule nan zòn ki pa vle. Pwoblèm sa a souvan snowballs nan yon bouk pwòp tèt ou-ranpli; estil ki teyorikman sijè a nan yon sèl eleman oswa klas kòmanse parèt kote yo pa fè pati. Sa a fòse pwomotè a kreye selektè menm plis espesifik pou pase sou tèt estil yo fwit, ki Lè sa a, aksidantèlman depase estil mondyal, ak sou sa. Konvansyon non klas rijid yo, tankou BEM, se yon solisyon teyorik pou pwoblèm sa a. Metodoloji BEM (Blòk, Eleman, Modifikatè) se yon fason sistematik pou bay non klas CSS pou asire ke yo ka itilize ankò ak estrikti nan dosye CSS yo. Konvansyon nonmen tankou sa a ka diminye chaj kognitif lè yo itilize langaj domèn pou dekri eleman yo ak eta yo, epi si yo aplike kòrèkteman, ka fè estil pou aplikasyon gwo pi fasil pou kenbe. Nan mond reyèl la, sepandan, li pa toujou travay deyò tankou sa. Priyorite yo ka chanje, epi ak chanjman, aplikasyon an vin konsistan. Ti chanjman nan estrikti HTML la ka mande anpil revizyon non klas CSS. Avèk aplikasyon entèaktif ki trè entèaktif, non klas ki swiv modèl BEM yo ka vin long ak enkonplè (egzanp, app-user-overview__status--is-authentiating), epi yo pa respekte règ nonmen yo konplètman kraze estrikti sistèm nan, kidonk anile benefis li yo. Bay defi sa yo, se pa etonan ke devlopè yo te tounen vin jwenn kad, Tailwind se fondasyon CSS ki pi popilè. Olye ke yo eseye goumen sa ki sanble tankou yon lagè espesifik ki pa genyen ant estil, li pi fasil bay moute sou Cascade CSS la epi sèvi ak zouti ki garanti izolasyon konplè. Devlopè yo apiye plis sou sèvis piblik yo Ki jan nou fè konnen ke gen kèk devlopè ki pike sou evite estil kaskad? Li se ogmantasyon nan zouti "modèn" front-end - tankou CSS-in-JS kad - ki fèt espesyalman pou objektif sa a. Travay ak estil izole ki byen sere nan konpozan espesifik ka sanble tankou yon souf lè fre. Li retire nesesite pou non bagay yo - toujou youn nan travay ki pi rayi ak ki pran tan - epi li pèmèt devlopè yo dwe pwodiktif san yo pa konprann konplètman oswa pwofite benefis eritaj CSS yo. Men, abandone CSS Cascade a vini ak pwòp pwoblèm li yo. Pou egzanp, konpozisyon Styles nan JavaScript mande pou konfigirasyon konstriksyon lou epi souvan mennen nan estil malonnman melanje ak maketing eleman oswa HTML. Olye pou nou konsidere ak anpil atansyon konvansyon nonmen, nou pèmèt bati zouti pou jenere otomatikman seleksyon ak idantifyan pou nou (egzanp, .jsx-3130221066), ki egzije devlopè yo kenbe ak yon lòt pseudo-lang ankò poukont li. (Kòm si chaj kognitif la nan konpreyansyon kisa tout Efè itilizasyon eleman ou a fè pa t deja ase!) Plis abstrè travay nonmen klas yo nan zouti vle di ke debogaj debaz yo souvan limite nan vèsyon aplikasyon espesifik konpile pou devlopman, olye ke ogmante karakteristik navigatè natif natal ki sipòte debogaj vivan, tankou Zouti Developer. Se prèske tankou nou bezwen devlope zouti pou debogaj zouti nou ap itilize pou fè abstrè sa entènèt la deja bay - tout pou dedomajman pou yo kouri lwen "doulè" nan ekri CSS estanda. Erezman, karakteristik CSS modèn yo pa sèlman fè ekri CSS estanda pi fleksib, men tou bay devlopè tankou nou anpil plis pouvwa pou jere kaskad la epi fè li travay pou nou. Kouch Cascade CSS yo se yon bon egzanp, men gen yon lòt karakteristik ki vin yon mank de atansyon etone - byenke sa ap chanje kounye a ke li te fèk vin konpatib Baseline. CSS @scope At-Rule la Mwen konsidere CSS @scope at-rule a kòm yon gerizon potansyèl pou sòt de enkyetid style-fuit-induit nou te kouvri, youn ki pa fòse nou konpwomi avantaj entènèt natif natal pou abstraksyon ak zouti bati siplemantè. "@scope CSS at-rule a pèmèt ou chwazi eleman nan sous-pye bwa DOM espesifik, vize eleman jisteman san yo pa ekri seleksyon ki twò espesifik ki difisil pou pase sou kontwòl, epi san yo pa kouple seleksyon ou yo twò sere ak estrikti DOM la." - MDN

Nan lòt mo, nou ka travay ak estil izole nan ka espesifik san yo pa sakrifye eritaj, kaskad, oswa menm separasyon debaz nan enkyetid.ki te yon prensip ki dire lontan nan devlopman front-end. Anplis de sa, li gen pwoteksyon navigatè ekselan. An reyalite, Firefox 146 te ajoute sipò pou @scope nan mwa desanm, sa ki fè li Baseline konpatib pou premye fwa. Men yon senp konparezon ant yon bouton ki itilize modèl BEM ak règ @scope:

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