मूलभूत CSS ची तत्त्वे शिकताना, देखभालक्षमता सुनिश्चित करण्यासाठी मॉड्यूलर, पुन्हा वापरता येण्याजोग्या आणि वर्णनात्मक शैली लिहिण्यास शिकवले जाते. परंतु जेव्हा विकसक वास्तविक-जागतिक अनुप्रयोगांमध्ये सामील होतात, तेव्हा अनपेक्षित भागात लीक झाल्याशिवाय UI वैशिष्ट्ये जोडणे अनेकदा अशक्य वाटते. ही समस्या बऱ्याचदा स्नोबॉलमध्ये स्वयं-पूर्ण लूप बनते; सैद्धांतिकदृष्ट्या एका घटकासाठी किंवा वर्गासाठी व्यापलेल्या शैली त्या संबंधित नसलेल्या ठिकाणी दिसायला लागतात. हे विकसकाला लीक केलेल्या शैलींना ओव्हरराइड करण्यासाठी आणखी विशिष्ट निवडक तयार करण्यास भाग पाडते, जे नंतर चुकून जागतिक शैली ओव्हरराइड करतात आणि असेच. बीईएम सारख्या कठोर वर्ग नेम अधिवेशने या समस्येचे एक सैद्धांतिक उपाय आहेत. BEM (ब्लॉक, एलिमेंट, मॉडिफायर) पद्धत CSS फायलींमध्ये पुन्हा वापरता येण्याजोगी आणि रचना सुनिश्चित करण्यासाठी CSS वर्गांना नाव देण्याचा एक पद्धतशीर मार्ग आहे. यासारख्या नामकरण पद्धती घटक आणि त्यांच्या स्थितीचे वर्णन करण्यासाठी डोमेन भाषेचा फायदा घेऊन संज्ञानात्मक भार कमी करू शकतात आणि योग्यरित्या अंमलात आणल्यास, मोठ्या अनुप्रयोगांसाठी शैली राखणे सोपे करू शकते. वास्तविक जगात, तथापि, हे नेहमीच असे कार्य करत नाही. प्राधान्यक्रम बदलू शकतात आणि बदलामुळे अंमलबजावणी विसंगत होते. HTML संरचनेतील लहान बदलांसाठी CSS वर्ग नावाच्या अनेक पुनरावृत्तींची आवश्यकता असू शकते. अत्यंत परस्परसंवादी फ्रंट-एंड ऍप्लिकेशन्ससह, BEM पॅटर्नचे अनुसरण करणारी वर्गाची नावे लांब आणि अवास्तव होऊ शकतात (उदा. app-user-overview__status--is-authenticating), आणि नामकरण नियमांचे पूर्णपणे पालन न केल्याने सिस्टमची रचना खंडित होते, ज्यामुळे त्याचे फायदे नाकारले जातात. ही आव्हाने पाहता, डेव्हलपर फ्रेमवर्ककडे वळले यात आश्चर्य नाही, टेलविंड सर्वात लोकप्रिय CSS फ्रेमवर्क आहे. शैलींमधील अजिंक्य विशिष्टतेच्या युद्धासारखे लढण्याचा प्रयत्न करण्याऐवजी, CSS कॅस्केड सोडणे आणि संपूर्ण अलगावची हमी देणारी साधने वापरणे सोपे आहे. डेव्हलपर युटिलिटीजवर अधिक झुकतात आम्हाला कसे कळेल की काही विकासक कॅस्केड शैली टाळण्यास उत्सुक आहेत? हे "आधुनिक" फ्रंट-एंड टूलिंगचा उदय आहे — जसे की CSS-इन-JS फ्रेमवर्क — विशेषत: त्या उद्देशाने डिझाइन केलेले. विशिष्ट घटकांसाठी घट्ट व्यापलेल्या वेगळ्या शैलींसह कार्य करणे ताजी हवेच्या श्वासासारखे वाटू शकते. हे गोष्टींना नाव देण्याची गरज काढून टाकते — तरीही सर्वात घृणास्पद आणि वेळ घेणारे फ्रंट-एंड टास्क — आणि CSS वारशाचे फायदे पूर्णपणे समजून घेतल्याशिवाय किंवा त्याचा फायदा न घेता विकासकांना उत्पादक बनण्याची अनुमती देते. परंतु CSS कॅस्केड खोदणे त्याच्या स्वतःच्या समस्यांसह येते. उदाहरणार्थ, JavaScript मधील शैली कंपोझ करण्यासाठी हेवी बिल्ड कॉन्फिगरेशनची आवश्यकता असते आणि अनेकदा शैली घटक मार्कअप किंवा 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