आधारभूत CSS को सिद्धान्तहरू सिक्दा, मर्मतयोग्यता सुनिश्चित गर्न मोड्युलर, पुन: प्रयोगयोग्य, र वर्णनात्मक शैलीहरू लेख्न सिकाइन्छ। तर जब विकासकर्ताहरू वास्तविक-विश्व अनुप्रयोगहरूसँग संलग्न हुन्छन्, यो प्रायः अनपेक्षित क्षेत्रहरूमा लीक शैलीहरू बिना UI सुविधाहरू थप्न असम्भव महसुस गर्दछ। यो समस्या प्रायः स्नोबल स्व-पूर्ति गर्ने लूपमा हुन्छ; सैद्धान्तिक रूपमा एउटा तत्व वा वर्गमा स्कोप गरिएका शैलीहरू तिनीहरूसँग सम्बन्धित नभएको ठाउँमा देखिन थाल्छन्। यसले विकासकर्तालाई चुहावट गरिएका शैलीहरूलाई ओभरराइड गर्न अझ बढी विशिष्ट चयनकर्ताहरू सिर्जना गर्न बाध्य पार्छ, जसले गल्तिले विश्वव्यापी शैलीहरूलाई ओभरराइड गर्छ, र यस्तै अन्य। कठोर वर्ग नाम सम्मेलनहरू, जस्तै BEM, यस मुद्दाको एक सैद्धान्तिक समाधान हो। BEM (ब्लक, एलिमेन्ट, परिमार्जक) पद्धति CSS फाइलहरू भित्र पुन: प्रयोज्यता र संरचना सुनिश्चित गर्न CSS वर्गहरूको नामकरण गर्ने एक व्यवस्थित तरिका हो। यस प्रकारको नामकरण सम्मेलनहरूले तत्वहरू र तिनीहरूको अवस्थाको वर्णन गर्न डोमेन भाषाको लाभ उठाएर संज्ञानात्मक भार कम गर्न सक्छ, र यदि सही रूपमा लागू गरियो भने, ठूला अनुप्रयोगहरूको लागि शैलीहरू कायम राख्न सजिलो बनाउन सक्छ। वास्तविक संसारमा, तथापि, यो सधैं यस्तो काम गर्दैन। प्राथमिकताहरू परिवर्तन हुन सक्छ, र परिवर्तन संग, कार्यान्वयन असंगत हुन्छ। HTML संरचनामा साना परिवर्तनहरू धेरै CSS वर्ग नाम संशोधन आवश्यक हुन सक्छ। उच्च अन्तरक्रियात्मक फ्रन्ट-एन्ड अनुप्रयोगहरूको साथ, BEM ढाँचा पछ्याउने वर्ग नामहरू लामो र अव्यवस्थित हुन सक्छन् (उदाहरणका लागि, एप-प्रयोगकर्ता-ओभरभ्यू__स्टेटस--प्रमाणीकरण गर्दै), र नामकरण नियमहरूको पूर्ण रूपमा पालना नगर्दा प्रणालीको संरचना भङ्ग हुन्छ, जसले गर्दा यसका फाइदाहरूलाई अस्वीकार गर्दछ। यी चुनौतिहरूलाई ध्यानमा राख्दै, विकासकर्ताहरूले फ्रेमवर्कमा फर्कनु कुनै अचम्मको कुरा होइन, Tailwind सबैभन्दा लोकप्रिय CSS फ्रेमवर्क हो। शैलीहरू बीच एक अपरिचित विशिष्टता युद्ध जस्तो देखिन्छ लड्न प्रयास गर्नुको सट्टा, CSS क्यास्केडलाई छोड्न र पूर्ण अलगावको ग्यारेन्टी गर्ने उपकरणहरू प्रयोग गर्न सजिलो छ। विकासकर्ताहरू उपयोगिताहरूमा बढी झुक्छन् हामी कसरी थाहा पाउँछौं कि केही विकासकर्ताहरू क्यास्केड शैलीहरू बेवास्ता गर्न उत्सुक छन्? यो "आधुनिक" फ्रन्ट-एन्ड टूलिङको उदय हो — जस्तै CSS-in-JS फ्रेमवर्क — त्यो उद्देश्यका लागि विशेष रूपमा डिजाइन गरिएको हो। पृथक शैलीहरूसँग काम गर्ने जुन विशेष कम्पोनेन्टहरूमा कडा स्कोप गरिएको छ ताजा हावाको सास जस्तो लाग्न सक्छ। यसले चीजहरूको नाम राख्ने आवश्यकतालाई हटाउँछ - अझै पनि सबैभन्दा घृणित र समय-उपभोग गर्ने फ्रन्ट-एन्ड कार्यहरू मध्ये एक - र विकासकर्ताहरूलाई CSS विरासतका फाइदाहरू पूर्ण रूपमा बुझेर वा लाभ उठाउन बिना उत्पादनशील हुन अनुमति दिन्छ। तर CSS क्यास्केड खाइरहँदा आफ्नै समस्याहरू आउँछन्। उदाहरणका लागि, जाभास्क्रिप्टमा कम्पोजिङ शैलीहरू भारी निर्माण कन्फिगरेसनहरू चाहिन्छ र प्रायः शैलीहरूलाई कम्पोनेन्ट मार्कअप वा HTML सँग मिल्ने अनौठो तरिकामा लैजान्छ। नामकरण प्रथाहरूलाई ध्यानपूर्वक विचार गर्नुको सट्टा, हामी हाम्रा लागि चयनकर्ताहरू र पहिचानकर्ताहरू (जस्तै, .jsx-3130221066) स्वतः उत्पन्न गर्न निर्माण उपकरणहरूलाई अनुमति दिन्छौं, जसले विकासकर्ताहरूलाई आफैंमा अर्को छद्म-भाषाको साथ राख्न आवश्यक छ। (जस्तै तपाईको सबै कम्पोनेन्टको इफेक्टले के गर्छ भन्ने बुझ्नको संज्ञानात्मक भार पहिले नै पर्याप्त थिएन!) टुलिङमा क्लासहरू नामकरण गर्ने कार्यलाई थप सार्नु भनेको विकासकर्ता उपकरणहरू जस्ता लाइभ डिबगिङलाई समर्थन गर्ने नेटिभ ब्राउजर सुविधाहरूको लाभ उठाउनुको सट्टा विकासको लागि कम्पाइल गरिएका विशिष्ट अनुप्रयोग संस्करणहरूमा आधारभूत डिबगिङमा सीमित हुन्छ। यो लगभग जस्तै हो कि हामीले उपकरणहरू डिबग गर्नका लागि उपकरणहरू विकास गर्न आवश्यक छ जुन हामीले वेबले पहिले नै उपलब्ध गराएको अमूर्त रूपमा प्रयोग गरिरहेका छौं - सबै मानक CSS लेख्ने "पीडा" बाट भाग्ने खातिर। सौभाग्यवश, आधुनिक CSS सुविधाहरूले मानक CSS लेखनलाई थप लचिलो मात्र बनाउँदैन तर हामी जस्ता विकासकर्ताहरूलाई क्यास्केड व्यवस्थापन गर्न र यसलाई हाम्रो लागि काम गर्न ठूलो मात्रामा शक्ति दिन्छ। CSS क्यास्केड तहहरू एक उत्कृष्ट उदाहरण हुन्, तर त्यहाँ अर्को विशेषता छ जुन ध्यानको अचम्मलाग्दो अभाव हुन्छ - यद्यपि त्यो अहिले परिवर्तन हुँदैछ कि यो भर्खरै आधारभूत अनुकूल भएको छ। CSS @scope At-Rule म CSS @scope at-rule लाई हामीले कभर गरेको शैली-लीक-प्रेरित चिन्ताको प्रकारको लागि सम्भावित उपचार मान्छु, जसले हामीलाई एब्स्ट्र्याक्सन र अतिरिक्त निर्माण उपकरणको लागि नेटिभ वेब फाइदाहरू सम्झौता गर्न बाध्य पार्दैन। "@scope CSS at-rule ले तपाइँलाई विशिष्ट DOM सबट्रीहरूमा तत्वहरू चयन गर्न सक्षम बनाउँछ, ओभरराइड गर्न गाह्रो हुने अति-विशिष्ट चयनकर्ताहरू नलिइकन, र तपाइँका चयनकर्ताहरूलाई DOM संरचनामा धेरै कडाइका साथ युग्मन नगरी सटीक रूपमा तत्वहरूलाई लक्षित गर्दै।"- MDN

अर्को शब्दमा भन्नुपर्दा, हामी विरासत, क्यास्केडिङ, वा आधारभूत पृथकतालाई पनि त्याग नगरी विशिष्ट उदाहरणहरूमा पृथक शैलीहरूसँग काम गर्न सक्छौं।जुन फ्रन्ट एन्ड विकासको लामो समयदेखि चलिरहेको मार्गदर्शक सिद्धान्त हो। साथै, यसमा उत्कृष्ट ब्राउजर कभरेज छ। वास्तवमा, Firefox 146 ले डिसेम्बरमा @scope को लागि समर्थन थप्यो, यसलाई पहिलो पटक आधारभूत अनुकूल बनाउँदै। यहाँ @scope नियम बनाम BEM ढाँचा प्रयोग गरेर बटन बीचको सरल तुलना छ:

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