'I he taimi 'oku ako ai 'a e ngaahi tefito'i mo'oni 'o e CSS tefito, 'Oku ako'i ha taha ke ne tohi 'a e ngaahi sitaila modular, reusable, mo e fakamatala ke fakapapau'i 'oku lava ke tauhi. Ka 'i he taimi 'oku kau ai 'a e kau developers mo e ngaahi polokalama 'o e mamani mo'oni, 'Oku fa'a ongo'i 'oku 'ikai ke lava ke tanaki atu 'a e ngaahi fotunga 'o e UI 'o 'ikai ha ngaahi sitaila 'oku leaking ki he ngaahi feitu'u 'oku 'ikai fakataumu'a. ‘Oku fa‘a snowball ‘a e ‘īsiu ko ení ki ha fo‘i lōloa ‘oku fakahoko-kita; ko e ngaahi sitaila ‘oku theoretically scoped ki ha ‘elemeniti pe kalasi ‘e taha ‘oku kamata ke fakahaa’i mai ‘a e feitu’u ‘oku ‘ikai ke nau kau ki ai. 'Oku fakamālohi'i 'e he me'a ni 'a e developer ke fa'u ha ngaahi fili pau ange ke faka'auha 'a e ngaahi sitaila leaked, 'a ia 'oku toki fakatu'upakee 'a e ngaahi sitaila fakamamani lahi, mo e me'a pehe. Ko e ngaahi fakataha'anga fefeka 'o e hingoa 'o e kalasi, hange ko e BEM, ko e taha ia 'o e ngaahi fakalelei'anga fakateolosia ki he 'isiu ko 'eni. Ko e founga ngaue 'o e BEM (Poloka, 'Elemeniti, Modifier) ko ha founga fakahokohoko ia 'o hono fakahingoa 'o e ngaahi kalasi CSS ke fakapapau'i 'a e reusability mo e fokotu'utu'u 'i loto 'i he ngaahi faile CSS. 'E lava ke fakasi'isi'i 'e he ngaahi fakataha'anga fakahingoa hange ko 'eni 'a e kavenga faka'atamai 'aki hono leveraging 'a e lea 'o e domain ke fakamatala'i 'a e ngaahi 'elemeniti mo honau tu'unga, pea kapau 'e fakahoko totonu, 'e lava ke ne 'ai 'a e ngaahi sitaila ki he ngaahi polokalama lalahi ke faingofua ange hono tauhi. Kae kehe, ‘i he māmani mo‘oní, ‘oku ‘ikai ke hoko ma‘u pē ia ‘o pehē. ʻE lava ke liliu ʻa e ngaahi meʻa ʻoku fakamuʻomuʻá, pea ʻi he liliú, ʻoku ʻikai ke tuʻumaʻu ʻa hono fakahokó. Ko e fanga ki'i liliu ki he fokotu'utu'u 'o e HTML 'e lava ke fie ma'u 'a e ngaahi fakatonutonu lahi 'o e hingoa 'o e kalasi CSS. 'I he ngaahi polokalama fetu'utaki ma'olunga 'i mu'a-faka'osinga, 'e lava ke hoko 'a e ngaahi hingoa 'o e kalasi 'oku muimui ki he sipinga 'o e BEM 'o loloa mo ta'elavame'a (e.g., app-user-overview__status--'oku-fakamo'oni'i), pea 'oku 'ikai ke muimui kakato ki he ngaahi tu'utu'uni fakahingoa 'oku ne maumau'i 'a e fokotu'utu'u 'o e sisitemi, 'o faka'ikai'i ai hono ngaahi lelei. ‘I he ngaahi pole ko ‘eni, ‘Oku ‘ikai ha ofo ‘i he tafoki ‘a e kau developers ki he ngaahi fa’unga, Tailwind ko e fa’unga CSS manakoa taha. Kae 'ikai ko e feinga ke tau'i 'a e me'a 'oku ngali hange ko ha tau 'o e specificity 'oku 'ikai lava ke ikuna'i 'i he vaha'a 'o e ngaahi sitaila, 'Oku faingofua ange ke tukuange 'a e CSS Cascade mo faka'aonga'i 'a e ngaahi me'angaue 'oku ne fakapapau'i 'a e fakamavahe'i kakato. 'Oku fakafalala lahi ange 'a e kau fakalakalaka ki he ngaahi me'angaue 'Oku tau 'ilo fefe 'oku 'i ai ha kau developers 'oku nau loto lahi ke faka'ehi'ehi mei he ngaahi sitaila cascaded? Ko e hake ia ‘o e “fakaonopooni” tooling ‘i mu’a — hange ko e CSS-‘i he-JS frameworks — kuo fa’ufa’u makehe ki he taumu’a ko ia. Ko e ngaue mo e ngaahi sitaila mavahe 'oku tightly scoped ki he ngaahi konga pau 'e lava ke ngali hange ha manava 'o e 'ea fo'ou. 'Oku ne to'o 'a e fie ma'u ke fakahingoa 'a e ngaahi me'a — kei hoko ko e taha 'o e ngaahi ngaue 'oku fehi'anekina'i mo taimi-fakamole 'i mu'a — pea 'oku ne faka'ata 'a e kau developers ke nau ola lelei 'o 'ikai mahino kakato pe leveraging 'a e ngaahi lelei 'o e tofi'a CSS. Ka ko e ditching 'o e CSS Cascade 'oku ha'u ia mo 'ene ngaahi palopalema 'a'ana. Hange ko 'eni, 'Oku fie ma'u 'e he fa'u 'o e ngaahi sitaila 'i he JavaScript 'a e ngaahi configurations langa mamafa pea 'oku fa'a taki atu ki he ngaahi sitaila 'oku awkwardly intermingling mo e konga markup pe HTML. Kae 'ikai ke fakakaukau'i fakalelei 'a e ngaahi fakataha'anga fakahingoa, 'Oku tau faka'ata 'a e langa 'o e ngaahi me'angaue ke autogenerate 'a e kau fili mo e kau faka'ilonga ma'atautolu (e.g., .jsx-3130221066), 'oku fie ma'u 'e he kau developers ke nau tauhi 'a e toe pseudo-lea 'i loto pea 'iate ia pe. (Hange ko e kavenga faka’atamai ‘o e mahino’i ‘a e me’a kotoa pe ‘oku fai ‘e ho’o konga useEffects na’e ‘ikai ke ‘osi fe’unga!) 'Oku 'uhinga 'a e toe abstracting 'a e ngaue 'o e fakahingoa 'o e ngaahi kalasi ki he tooling 'oku fa'a fakangatangata 'a e debugging tefito ki he ngaahi liliu pau 'o e polokalama 'oku fakatahataha'i ki he fakalakalaka, kae 'ikai ko e leveraging 'a e ngaahi fotunga 'o e browser fakafonua 'oku nau poupou'i 'a e debugging mo'ui, hange ko e ngaahi me'angaue 'a e Developer. ‘Oku meimei hange ‘oku tau fie ma’u ke fakatupulaki ha ngaahi me’angaue ke debug ‘a e ngaahi me’angaue ‘oku tau faka’aonga’i ke abstract ‘a e me’a ‘oku ‘osi ‘omai ‘e he uepi — kotoa koe’uhi ko e hola mei he “mamahi” ‘o e tohi ‘o e CSS angamaheni. Me'a lelei, 'Oku 'ikai ngata pe 'i he ngaahi fotunga 'o e CSS fakaonopooni 'oku ne 'ai ke tohi 'a e CSS angamaheni 'oku toe fe'unga ka 'oku ne 'oatu foki 'a e kau developers hange ko kitautolu ha malohi lahi ange ke pule'i 'a e cascade pea 'ai ke ngaue ma'atautolu. CSS Cascade Layers ko ha sipinga lahi, ka ‘oku ‘i ai ha toe me’a ‘e taha ‘oku ne ma’u ha ‘ikai ke tokanga faka’ohovale — neongo ‘oku liliu ia he taimi ni kuo toki hoko ia ko e Baseline compatible. Ko e CSS @scope 'i he-Tu'utu'uni . 'Oku ou fakakaukau ki he CSS @scope 'i he-tu'utu'uni ko ha faito'o 'e lava ke fai ki he fa'ahinga 'o e hoha'a 'oku fakatupu 'e he sitaila-leak kuo tau 'ufi'ufi, 'a e taha 'oku 'ikai ke ne fakamālohi'i kitautolu ke fakangaloku 'a e ngaahi lelei 'o e uepi fakafonua ki he abstractions mo e tooling langa lahi ange. "Ko e @scope CSS 'i he-tu'utu'uni 'oku ne faka'ata koe ke ke fili 'a e ngaahi 'elemeniti 'i he ngaahi subtrees DOM pau, 'o fakataumu'a totonu 'a e ngaahi 'elemeniti 'o 'ikai tohi 'a e ngaahi fili 'oku fu'u-pau 'oku faingata'a ke fakalaka, pea 'ikai ke coupling ho'o ngaahi fili 'oku fu'u kaukaua ki he fokotu'utu'u 'o e DOM."— MDN .
'I hono fakalea 'e taha, 'e lava ke tau ngaue mo e ngaahi sitaila 'oku mavahe 'i he ngaahi me'a pau 'o 'ikai feilaulau'i 'a e tofi'a, cascading, pe na'a mo e tefito'i mavahe 'o e ngaahi hoha'a .ko e meʻa ia kuo hoko ko ha tefitoʻi moʻoni fakahinohino fuoloa ʻo e fakalakalaka ʻi muʻá. Plus, it has excellent browser coverage. Ko hono mo'oni, Na'e tanaki atu 'e he Firefox 146 'a e poupou ki he @scope 'i Tisema, 'o 'ai ai ia ke fe'unga mo e Baseline 'i he fuofua taimi. Ko e fakafehoanaki faingofua 'eni 'i he vaha'a 'o ha button 'o faka'aonga'i 'a e sipinga 'o e BEM versus 'a e tu'utu'uni @scope:
'Oku faka'ata 'e he tu'utu'uni @scope 'a e tonu mo e si'isi'i ange 'a e faingata'a. 'Oku 'ikai ke toe fie ma'u 'e he developer ke fa'u ha ngaahi ngata'anga 'o faka'aonga'i 'a e ngaahi hingoa 'o e kalasi, 'a ia, 'i he tafa'aki 'e taha, 'oku ne faka'ata kinautolu ke nau tohi 'a e kau fili 'o makatu'unga 'i he ngaahi 'elemeniti HTML fakafonua, 'o fakangata ai 'a e fie ma'u ki he ngaahi sipinga 'o e hingoa 'o e kalasi CSS prescriptive. 'I hono to'o pe 'a e fie ma'u ki hono pule'i 'o e hingoa 'o e kalasi, 'e lava ke fakasi'isi'i 'e he @scope 'a e manavasi'i 'oku fekau'aki mo e CSS 'i he ngaahi poloseki lalahi.
Ngaue'aki Tefito
Ke kamata, tanaki atu 'a e tu'utu'uni @scope ki ho'o CSS pea fakahu ha fili 'o e aka ki he ngaahi sitaila 'e scoped:
@scope (
Ko ia, hange ko 'eni, kapau te tau scope 'a e ngaahi sitaila ki ha 'elemeniti
@fakakaukau (nav) { a { /* Link styles within nav scope */ }
a:active { /* Active link styles */ }
a: malohi::kimu'a { /* Fehokotaki'anga malohi mo e pseudo-'elemeniti ki ha toe styling */ }
@mītia (lahi taha-lahi: 768px) { a { /* Responsive adjustments */ } } }
Ko e me‘á ni, ‘iate ia pē, ‘oku ‘ikai ko ha me‘a fakatupu-fo‘ou. Kaekehe, ‘e lava ke tanaki atu ha fakakikihi hono ua ki he scope ke fa’u ha ngata’anga ma’ulalo ange, ‘o faka’uhinga’i lelei ‘a e kamata’anga mo e ngata’anga ‘o e scope.
/* Ko ha 'elemeniti 'i loto ul 'e 'ikai ke 'i ai ha ngaahi sitaila 'oku faka'aonga'i */ @fakakaukau (nav) ki he (ul) { a { lahi-mataʻitohi: 14px; } }
'Oku ui 'a e founga ko 'eni ko e donut scoping, pea 'oku 'i ai ha ngaahi founga 'e ni'ihi 'e lava ke faka'aonga'i 'e ha taha, kau ai ha ngaahi hokohoko 'o e ngaahi fili tatau, pau 'aupito 'oku fakataha'i fefeka ki he fokotu'utu'u 'o e DOM, ha :'ikai pseudo-fili, pe vahevahe 'a e ngaahi hingoa kalasi pau ki he ngaahi 'elemeniti 'i loto 'i he