Nalika sinau prinsip CSS dhasar, siji diwulang nulis gaya modular, bisa digunakake maneh, lan deskriptif kanggo njamin maintainability. Nanging nalika pangembang melu aplikasi ing donya nyata, asring ora bisa nambah fitur UI tanpa gaya bocor menyang wilayah sing ora dikarepake. Jeksa Agung bisa ngetokake iki asring snowballs menyang daur ulang timer nepaki; gaya sing miturut teori scoped kanggo siji unsur utawa kelas wiwit nuduhake munggah ngendi padha ora dadi kagungane. Iki meksa pangembang nggawe pamilih sing luwih spesifik kanggo ngatasi gaya sing bocor, sing banjur ora sengaja ngilangi gaya global, lan liya-liyane. Konvensi jeneng kelas kaku, kayata BEM, minangka salah sawijining solusi teoretis kanggo masalah iki. Metodologi BEM (Block, Element, Modifier) ​​minangka cara sistematis kanggo menehi jeneng kelas CSS kanggo njamin bisa digunakake maneh lan struktur ing file CSS. Konvensi jeneng kaya iki bisa nyuda beban kognitif kanthi nggunakake basa domain kanggo njlèntrèhaké unsur lan negara, lan yen dileksanakake kanthi bener, bisa nggawe gaya kanggo aplikasi gedhe luwih gampang dijaga. Ing donya nyata, Nanging, iku ora tansah bisa metu kaya sing. Prioritas bisa diganti, lan kanthi owah-owahan, implementasine dadi ora konsisten. Owah-owahan cilik ing struktur HTML bisa mbutuhake akeh revisi jeneng kelas CSS. Kanthi aplikasi front-end sing interaktif banget, jeneng kelas kanthi pola BEM bisa dadi dawa lan ora bisa digunakake (contone, app-user-overview__status--is-authenticating), lan ora netepi aturan penamaan kanthi lengkap, ngrusak struktur sistem, mula negasi keuntungane. Amarga tantangan kasebut, ora kaget yen pangembang wis ngowahi kerangka kerja, Tailwind minangka kerangka CSS sing paling populer. Tinimbang nyoba nglawan apa sing katon kaya perang spesifik sing ora bisa dimenangi ing antarane gaya, luwih gampang nyerah ing CSS Cascade lan nggunakake alat sing njamin isolasi lengkap. Pangembang Lean More On Utilities Kepiye carane ngerti manawa sawetara pangembang kepengin ngindhari gaya sing kaskade? Iku munggah saka perkakas ngarep "modern" - kaya frameworks CSS-in-JS - dirancang khusus kanggo tujuan kasebut. Nggarap gaya terisolasi sing rapet karo komponen tartamtu bisa katon kaya ambegan hawa seger. Mbusak kebutuhan kanggo menehi jeneng - isih dadi salah sawijining tugas ngarep sing paling disengiti lan akeh wektu - lan ngidini pangembang dadi produktif tanpa ngerti utawa nggunakake keuntungan warisan CSS. Nanging ditching CSS Cascade teka karo masalah dhewe. Umpamane, nyipta gaya ing JavaScript mbutuhake konfigurasi mbangun sing abot lan asring ndadékaké gaya sing ora cocog karo markup komponen utawa HTML. Tinimbang konvènsi jeneng kasebut kanthi teliti, kita ngidini mbangun alat kanggo autogenerate pamilih lan pengenal kanggo kita (contone, .jsx-3130221066), mrintahake pangembang kanggo tetep karo durung liyane pseudo-basa ing dhewe. (Kaya beban kognitif kanggo mangerteni apa kabeh komponen sampeyan nggunakakeEffects durung cukup!) Luwih abstrak tugas menehi jeneng kelas kanggo perkakas tegese debugging dhasar asring diwatesi kanggo versi aplikasi tartamtu sing disusun kanggo pangembangan, tinimbang nggunakake fitur browser asli sing ndhukung debugging langsung, kayata Alat Pangembang. Iku meh kaya kita kudu ngembangake alat kanggo debug alat sing digunakake kanggo abstrak apa sing wis diwenehake web - kabeh kanggo mlayu saka "nyeri" nulis CSS standar. Untunge, fitur CSS modern ora mung nggawe nulis CSS standar luwih fleksibel nanging uga menehi pangembang kaya kita luwih akeh kekuwatan kanggo ngatur kaskade lan bisa digunakake kanggo kita. CSS Cascade Layers minangka conto sing apik, nanging ana fitur liyane sing ora bisa digatekake - sanajan saiki wis ganti amarga saiki kompatibel karo Baseline. CSS @scope At-Rule Aku nganggep CSS @scope at-rule minangka obat potensial kanggo jinis gaya-bocor-induced kuatir sing wis kita tutupi, sing ora meksa kita kompromi kaluwihan web asli kanggo abstraksi lan alat tambahan. "Aturan CSS @scope ngidini sampeyan milih unsur ing subtree DOM tartamtu, nargetake unsur kanthi tepat tanpa nulis pamilih sing spesifik banget sing angel ditimpa, lan tanpa nyambungake pamilih sampeyan kanthi rapet karo struktur DOM." - MDN

Ing tembung liyane, kita bisa nggarap gaya sing terisolasi ing kasus tartamtu tanpa ngorbanake warisan, runtun, utawa malah misahake masalah.sing wis dadi prinsip panuntun dawa kanggo pangembangan front-end. Kajaba iku, nduweni jangkoan browser sing apik banget. Nyatane, Firefox 146 nambahake dhukungan kanggo @scope ing Desember, nggawe Baseline kompatibel kanggo pisanan. Mangkene perbandingan prasaja antarane tombol nggunakake pola BEM versus aturan @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