CSS में "कैस्केडिंग" शब्द का सटीक अर्थ क्या है? मुझे अलग-अलग विचार मिल रहे हैं, इसलिए मैं यहां पूछता हूं। एक उदाहरण से मदद मिलेगी।
CSS में "कैस्केडिंग" शब्द का सटीक अर्थ क्या है? मुझे अलग-अलग विचार मिल रहे हैं, इसलिए मैं यहां पूछता हूं। एक उदाहरण से मदद मिलेगी।
जवाबों:
इस संदर्भ में "कैस्केडिंग" का अर्थ है कि क्योंकि एक से अधिक स्टाइलशीट घोषणा HTML के किसी विशेष टुकड़े पर लागू हो सकती है, इसलिए यह निर्धारित करने का एक ज्ञात तरीका होना चाहिए कि कौन सा विशिष्ट स्टाइलशीट नियम HTML के किस टुकड़े पर लागू होता है।
उपयोग किए जाने वाले नियम को और अधिक सामान्य घोषणाओं से नीचे विशिष्ट नियम के लिए कैस्केडिंग करके चुना जाता है। सबसे विशिष्ट घोषणा को चुना जाता है।
जब मैं CSS सिखाता हूं, तो मैं हमेशा छात्रों को बताता हूं कि "कैस्केडिंग स्टाइल शीट" का अर्थ " फाइटिंग स्टाइल शीट" जैसा कुछ है ।
एक नियम आपके H3 टैग को लाल बताता है, एक अन्य नियम इसे हरा बताता है - नियम एक दूसरे के विपरीत हैं, कौन जीतेगा !? स्टाइल्सशीट की मौत!
ठीक है, शायद यह एक मामूली अतिशयोक्ति है, लेकिन यह गैर-कोड, गैर-प्रोग्रामिंग लोगों के लिए कहीं अधिक सौहार्दपूर्ण है, जो सिर्फ एक कैस्केड, या विरासत की किसी भी धारणा से शुरू कर रहे हैं।
मैं निश्चित रूप से उन्हें यह बताना सुनिश्चित करता हूं कि यह स्टाइल शीट के लिए एक-दूसरे से लड़ने की समस्या नहीं है, जिस तरह से भाषा डिजाइन की गई थी।
Håkon Wium Lie (CSS सह-निर्माता) CSS पर अपनी PHD- थीसिस में "कैसकेड" को परिभाषित करता है "कई स्टाइल शीट के संयोजन और उनके बीच संघर्षों को हल करने की प्रक्रिया" https://www.wiumlie.no/2006/phd/
निम्नलिखित लेख आपके प्रश्न का पूरी तरह से उत्तर देता है।
यह वह क्रम है जिसमें गुण किसी विशेष तत्व (एस) पर लागू होते हैं।
आपको इसे बाहर से अंदर से सोचना होगा। यदि आपके पास एक नियम है कि शरीर टैग पर है तो यह हर बच्चे के टैग के माध्यम से "कैस्केड" करेगा। यदि आप शरीर के अंदर किसी भी टैग पर एक नियम रखते हैं तो वह उस नियम को अपनाएगा, इत्यादि। तो नियम सभी सामग्री के माध्यम से कैस्केड करता है जब तक कि एक एम्बेडेड टैग से एक नियम द्वारा बाधित नहीं किया जाता है।
आप सीएसएस प्रसंस्करण का इलाज कर सकते हैं क्योंकि एक झरना में कई कैस्केड होते हैं। यहाँ क्रम से ऊपर से नीचे तक उन cascades हैं: (निम्न उच्च में समान संपत्ति को ओवरराइड कर सकता है।)
युक्ति में अधिक देखें
व्यापक कई मूल से सही मूल्य लेने के लिए है। लेकिन यह छँटाई से अलग है । केवल कुछ क्रम में नहीं हमें क्रमबद्ध करने की आवश्यकता है। लेकिन CSS में इन उत्पत्ति ने पूर्ववर्तीता को निर्धारित किया है। और इस प्रकार छद्म कोड निम्नानुसार लग सकता है:
छद्म कोड से आप इसे कई झरनों के झरने की तरह देख सकते हैं।
एक स्पष्टीकरण जो मदद कर सकता है। यदि आप दो स्टाइलशीट को शामिल करते हैं और प्रत्येक में समान विशिष्टता के साथ एक नियम है, तो अंतिम जीत शामिल है। IE कैस्केड में सबसे अधिक प्रभाव है।
(यह एक ही शीट में दो नियम होने पर एक भिन्नता है - यदि अन्य सभी चीजें समान हैं तो अंतिम एक जीतता है।)
जैसे, दिया
body {
background:blue;
}
body {
background:green;
}
फिर पृष्ठभूमि हरे रंग की होगी।
यह उत्तर निरपेक्ष शुरुआती के लिए है। यदि आप इस उत्तर का अवलोकन चाहते हैं तो कृपया मेरा दूसरा उत्तर पढ़ें।
कैस्केडिंग विभिन्न स्टाइलशीट के संयोजन और विभिन्न सीएसएस नियमों और घोषणाओं के बीच संघर्ष को हल करने की प्रक्रिया है जब एक निश्चित तत्व पर एक से अधिक नियम लागू होते हैं । क्योंकि जैसा कि आप शायद पहले से ही एक निश्चित शैली की संपत्ति के लिए एक घोषणा जानते हैं जैसे कि फ़ॉन्ट आकार कई स्टाइलशीट में और कई बार एक स्टाइल स्टाइल के अंदर भी दिखाई दे सकता है।
कैस्केडिंग को समझने के लिए आपको सीएसएस पार्सिंग चरण के साथ शुरू करना होगा क्योंकि पार्सिंग चरण में पहला कदम सीएसएस घोषणाओं का विरोध करना है और दूसरा चरण अंतिम सीएसएस मूल्यों को संसाधित करना है।
अब CSS अलग-अलग स्रोतों से भी आ सकती है। सबसे आम एक सीएसएस है जिसे हम डेवलपर्स लिखते हैं। ये घोषणाएँ जो हम अपनी शैलियों में डालते हैं उन्हें लेखक घोषणाएँ कहते हैं। एक अन्य स्रोत उपयोगकर्ता घोषणाएं हो सकती हैं, जो सीएसएस उपयोगकर्ता से आ रही हैं। उदाहरण के लिए, जब उपयोगकर्ता ब्राउज़र में डिफ़ॉल्ट फ़ॉन्ट आकार बदलता है तो वह उपयोगकर्ता सीएसएस होता है, और अंतिम लेकिन कम से कम डिफ़ॉल्ट ब्राउज़र घोषणाएं नहीं होती हैं।
उदाहरण के लिए, यदि हम एक लिंक के लिए अपने HTML में एक एंकर टैग लगाते हैं और फिर इसे बिल्कुल भी स्टाइल नहीं करते हैं, तो यह आमतौर पर नीले रंग के पाठ के साथ प्रस्तुत किया जाएगा और सही, रेखांकित किया जाएगा। इसे उपयोगकर्ता एजेंट CSS कहा जाता है क्योंकि यह ब्राउज़र द्वारा निर्धारित है। तो झरना इन सभी अलग-अलग स्रोतों से आने वाली सीएसएस घोषणाओं को जोड़ता है, लेकिन एक नियम से अधिक लागू होने पर झरना वास्तव में टकराव को कैसे हल करता है?
ठीक है, चयनकर्ता विशिष्टता पर, महत्व को देखने के लिए, और परस्पर विरोधी घोषणाओं के स्रोत के क्रम में यह निर्धारित करने के लिए कि कौन सा पूर्वता लेता है, और यहां बताया गया है कि यह कैसे काम करता है। पहले कैस्केड अलग-अलग महत्व के परस्पर विरोधी घोषणाओं को देकर शुरू होता है, जहां वे अपने स्रोत पर घोषित किए जाते हैं। सबसे महत्वपूर्ण घोषणाएं महत्वपूर्ण उपयोगकर्ता के साथ चिह्नित उपयोगकर्ता घोषणाएं हैं।
दूसरी सबसे महत्वपूर्ण घोषणाएं महत्वपूर्ण के साथ चिह्नित लेखक घोषणाएं हैं। तीसरा, सामान्य लेखक घोषणाएँ, फिर सामान्य उपयोगकर्ता घोषणाएँ, और अंत में कम से कम महत्वपूर्ण डिफ़ॉल्ट ब्राउज़र घोषणाएँ हैं, जो वास्तव में बहुत कुछ समझ में आता है कि हम ब्राउज़र से डिफ़ॉल्ट रूप से आने वाले इन घोषणाओं को आसानी से अधिलेखित कर सकते हैं।
अब कई बार हम अपने लेखक स्टाइलशीट्स में बिना किसी महत्वपूर्ण कीवर्ड के परस्पर विरोधी नियमों का एक समूह बना लेंगे। यह वास्तव में सबसे आम परिदृश्य है और इस मामले में, सभी घोषणाओं का सटीक समान महत्व है। अब, इस मामले में क्या होता है? यदि कैस्केड ऐसा करता है तो यह घोषणा चयनकर्ताओं की विशिष्टताओं की गणना और तुलना करने के लिए है, और यह है कि यह कैसे काम करता है।
इनलाइन शैलियों में आईडी, उसके बाद कक्षाएं, छद्म कक्षाएं और विशेषता चयनकर्ताओं और उसके बाद अंत में सबसे कम विशिष्ट तत्व और छद्म तत्व चयनकर्ता की उच्चतम विशिष्टता होती है। इसलिए जब हमारे पास परस्पर विरोधी घोषणाएँ होती हैं, जैसा कि हमने पिछली स्लाइड में देखा था कि हमने प्राथमिकताओं के आधार पर उनकी चयनकर्ता विशिष्टता की गणना की है जो मैंने अभी आपको दिखाई है, लेकिन आइए देखें कि हम वास्तव में छोटे उदाहरण के साथ विशिष्टताओं की गणना कैसे करते हैं, यह हमेशा सबसे अच्छा है, सही है।
उपरोक्त उदाहरण से, इन सभी घोषणाओं का एक ही महत्व है, क्योंकि वे सभी लेखक घोषणाएँ हैं। तो आइए उनकी चयनकर्ता विशिष्टताओं की गणना करें ताकि यह पता लगाया जा सके कि पृष्ठभूमि का रंग नीला, हरा, बैंगनी या पीला होगा या नहीं, और हम इसे करते हैं। विशिष्टता वास्तव में केवल एक संख्या नहीं है, बल्कि उन चार श्रेणियों में से प्रत्येक के लिए एक संख्या है जो मैंने आपको पहले दिखाया था। इनलाइन शैलियों, आईडी, कक्षाएं, छद्म तत्व और विशेषताएँ, और अंत में तत्व और इनमें से प्रत्येक के लिए, हम चयनकर्ता में होने वाली घटनाओं की संख्या की गणना करते हैं।
तो यहाँ चयनकर्ता एक में, हमारे पास निश्चित रूप से कोई इनलाइन शैली नहीं है, क्योंकि एक इनलाइन शैली HTML में लिखी जानी है, जो यहाँ नहीं है, इसलिए यह एक शून्य है। हमारे पास यहां कोई आईडी नहीं है, इसलिए यह फिर से एक शून्य है, लेकिन हमारे पास एक वर्ग, बटन वर्ग है। इसलिए वर्गों की श्रेणी के लिए, हमारे पास एक है, और अंत में, यहाँ कोई तत्व चयनकर्ता नहीं है, इसलिए उस एक के लिए भी शून्य है, और यह बात है। चयनकर्ता विशिष्टता शून्य, शून्य, एक, शून्य है।
अब, अब इसकी तुलना दूसरों से करते हैं। अगला भी एक इनलाइन शैली नहीं है, इसलिए पहले वाले के लिए शून्य। अब यहाँ वास्तव में हमारे पास नेवी आईडी के लिए एक आईडी चयनकर्ता है, ठीक है, इसलिए यह आईडी के लिए एक है। हमारे पास दो वर्ग भी हैं दाएं और बटन तो यह वर्ग श्रेणी के लिए एक दो है, और अंत में, यहां दो तत्व चयनकर्ता भी हैं। नौसेना तत्व और div तत्व, जिसका अर्थ है कि यह तत्व श्रेणी के लिए भी दो है। तो अंत में चयनकर्ता की विशिष्टता शून्य है, एक, दो, दो, जो वास्तव में एक अत्यधिक विशिष्ट चयनकर्ता है।
चयनकर्ता संख्या तीन बहुत सरल है। यह सिर्फ एक तत्व चयनकर्ता है और इसलिए विशिष्टता शून्य, शून्य, शून्य, एक है।
अब अंतिम एक, चयनकर्ता संख्या चार। सबसे पहले हमारे पास नेवी आईडी है, इसलिए यह आईडी के लिए एक है। अगला, हमारे पास एक वर्ग है, बटन वर्ग है, और एक छद्म वर्ग भी है, जो मंडराना है, जो कुल मिलाकर वर्ग श्रेणी के लिए इसे दो बनाता है। चूंकि एक तत्व चयनकर्ता भी है अंतिम विशिष्टता शून्य है, एक, दो, एक।
अब आइए जानते हैं कि हम चयन करने के लिए इन नंबरों का उपयोग वास्तव में कैसे करते हैं। हम सबसे विशिष्ट श्रेणी, इनलाइन शैलियों के साथ बाएं से दाएं शुरू होने वाली संख्याओं को देखना शुरू करते हैं। यदि इनलाइन शैलियों के लिए एक के साथ एक चयनकर्ता है, तो अन्य सभी चयनकर्ताओं के खिलाफ जीतता है, क्योंकि यह सबसे विशिष्ट श्रेणी है। खैर, यहाँ ऐसा नहीं है, इसलिए आइडी पर चलते हैं। हम देखते हैं कि चयनकर्ताओं दो और चार के पास एक है जबकि अन्य के पास शून्य है, इसलिए शून्य वाले खेल से बाहर हैं क्योंकि वे कम विशिष्ट हैं तो चयनकर्ता दो और चार आईडी के साथ चयन करते हैं।
अब चूंकि दोनों चयनकर्ताओं के पास आईडी श्रेणी में एक है इसलिए हमें कक्षाओं को आगे बढ़ाना और जांचना होगा। वे दोनों इस श्रेणी में एक दो अभी भी उनके बीच एक टाई है, और अंत में, तत्व श्रेणी में, चयनकर्ता दो में दो हैं जबकि चयनकर्ता चार में केवल एक है और इसलिए हमारे पास यहां एक विजेता है। चयनकर्ता संख्या दो सभी का सबसे विशिष्ट चयनकर्ता है और इसलिए यह हमारे बटन को एक हरे रंग की पृष्ठभूमि देगा ।4 जीतने की घोषणा के मूल्य को कैस्केड मूल्य कहा जाता है क्योंकि यह कैस्केड का परिणाम है।
तो हम इस मामले में घोषित मूल्यों के एक समूह के साथ शुरू करते हैं, नीला, हरा, बैंगनी और पीला उनमें से एक जीतता है और कैस्केड मूल्य बन जाता है, जो हमारे उदाहरण हरे रंग में है।
अब कल्पना कीजिए कि सेक्टर चार में भी दो तत्व होते हैं तो दोनों चयनकर्ता दो और चार की एक ही विशिष्टता होगी, ठीक है। तो इस मामले में क्या होता है और मैं वादा करता हूं कि यह अब ठीक है। खैर, अगर इस बिंदु पर अभी भी एक टाई है तो कोड में लिखा गया अंतिम सीएसएस घोषणा वही है जो लागू होगी। तो फिर से अगर सब कुछ समान है, यदि सभी घोषणाओं के चयनकर्ताओं में एक ही विशिष्टता है तो यह केवल अंतिम घोषणा है जिसे चयनित तत्व को स्टाइल करने के लिए उपयोग किया जाएगा।
CSS कास्केडिंग स्टाइल शीट के लिए है। उनकी बहुत ही प्रकृति शैलियों द्वारा एक कैस्केडिंग स्टाइलशीट को नीचे से ऊपर की ओर बराबर शैलियों को ओवरराइड किया जाता है (जब तक कि उच्चतर शैली अधिक विशिष्ट न हों)। इसलिए हम एक स्टाइलशीट की शुरुआत में बेस स्टाइल सेट कर सकते हैं, जो हमारे डिजाइन के सभी संस्करणों पर लागू होता है, और फिर दस्तावेज़ में मीडिया प्रश्नों के साथ प्रासंगिक अनुभागों को ओवरराइड करता है।
कैस्केडिंग का अर्थ है चरणों में डालना या चरणों में जोड़ना। स्टाइल शीट में html एलिमेंट को स्टाइल करने के लिए कोड होते हैं। और जिस तरह से स्टाइल शीट में कोड लिखे गए हैं वह कैस्केडिंग फैशन में है। या बस, स्टाइल शीट में एक html पृष्ठ के प्रत्येक HTML तत्व के लिए परतों में बैक टू बैक कोड्स को कैस्केडिंग स्टाइल शीट बनाते हैं।
कैस्केडिंग एक एल्गोरिथ्म है जो प्रत्येक शैली नियम के लिए वजन प्रदान करता है। जब कई नियम लागू होते हैं, तो सबसे अधिक वजन वाला व्यक्ति पूर्वता लेता है।
जब एक या एक से अधिक शैलियों को एक ही तत्व पर लागू किया जाता है। CSS नियमों का एक सेट करता है जिसे कैस्केडिंग कहा जाता है जो दो लागू शैलियों की विशिष्टता की ताकत का मूल्यांकन करता है और विजेता को निर्धारित करता है अर्थात शैली नियम जिसमें अधिक वजन होता है। दो और नियम एक ही वजन तो नियम पिछले जीत लागू किया।
कैस्केड और विशिष्टता जिसे आपको जानना आवश्यक है:
सीएसएस घोषणा के साथ चिह्नित महत्वपूर्ण सबसे अधिक प्राथमिकता है।
लेकिन केवल एक अंतिम संसाधन के रूप में महत्वपूर्ण है। सही विशिष्टताओं का उपयोग करना बेहतर है- अधिक बनाए रखने योग्य कोड!
इनलाइन शैलियों हमेशा बाहरी स्टाइलशीट में शैलियों पर प्राथमिकता होगी।
एक चयनकर्ता जिसमें 1 ID होती है वह 1000 वर्गों के साथ एक से अधिक विशिष्ट होता है।
एक चयनकर्ता जिसमें 1 वर्ग शामिल है वह विशिष्ट है जो 1000 तत्वों के साथ है।
सार्वभौमिक चयनकर्ता * का कोई विशिष्टता मूल्य नहीं है (0,0,0)
चयनकर्ताओं के आदेश की तुलना में विशिष्टता पर अधिक।
लेकिन तीसरे पक्ष के स्टाइलशीट का उपयोग करते समय आदेश पर भरोसा करें-हमेशा अपने लेखक स्टाइलशीट को अंतिम रखें।
एक HTML तत्व पर लागू करने के लिए सीएसएस शैलियों का चयन करने में, विशिष्टता शैलियों के बीच संघर्षों को निपटाने वाले नियमों के कैस्केडिंग सेट के अनुसार सामान्यता को ओवरराइड करती है :
एक सीएसएस चयनकर्ता जो टैग्स, कक्षाओं और / या आईडी के अधिक विशिष्ट संयोजन से मेल खाता है , प्राथमिकता लेगा। निम्नलिखित उदाहरणों में से, पहले सीएसएस में उपस्थिति के उनके आदेश की परवाह किए बिना, दूसरे पर वरीयता लेगा:
ol#identity li.firstname { color: red; }
#identity .firstname { color: blue; }
CSS doc
p{font-size: 12pt;}
p{font-size: 14pt;}
<p>My Headline<p>
14 वें फ़ॉन्ट पर p रेंडर करेगा क्योंकि यह वास्तविक तत्व के लिए "करीब" है (फ़ाइल के ऊपर से नीचे की तरफ लोड करने के लिए बाहरी स्टाइल शीट)। यदि आप लिंक्ड स्टाइल शीट का उपयोग करते हैं और फिर बाहरी सीएसएस डॉक्स से लिंक करने के बाद अपने दस्तावेज़ के सिर में कुछ सीएसएस शामिल करते हैं , तो "हेड इन हेड" घोषणा जीत जाएगी क्योंकि यह परिभाषित तत्व के करीब है। यह केवल समान रूप से भारित चयनकर्ताओं का सच है। किसी दिए गए चयनकर्ता के वजन के अच्छे विवरण के लिए http://www.stuffandnonsense.co.uk/archives/css_specificity_wars.html देखें ।
सभी ने कहा, आप कैसकेड के हिस्से के रूप में 'विरासत' पर विचार कर सकते हैं - सभी व्यावहारिक उद्देश्यों के लिए। तत्व युक्त चीजों से "कैसकेड" नीचे।