Chrome 63 से, किसी शैडो रूट में कॉन्टेंट को स्टाइल करने के लिए, शैडो पियर्सिंग सिलेक्टर ::shadow
और /deep/
का इस्तेमाल नहीं किया जा सकता.
/deep/
संयोजक डिसेंडेंट सिलेक्टर के तौर पर काम करेगा.x-foo /deep/ div
x-foo div
की तरह काम करेगा.::shadow
सूडो-एलिमेंट किसी भी एलिमेंट से मैच नहीं करेगा.
हटाने का फ़ैसला
Chrome के 45 वर्शन में ::shadow
और /deep/
के इस्तेमाल पर रोक लगा दी गई थी. यह फ़ैसला, अप्रैल 2015 में वेब कॉम्पोनेंट की मीटिंग में हिस्सा लेने वाले सभी लोगों ने तय किया था.
शैडो पियर्सिंग सिलेक्टर के साथ मुख्य चिंता यह है कि वे एनकैप्सुलेशन का उल्लंघन करते हैं और ऐसी स्थितियां बनाते हैं जिनमें कोई कॉम्पोनेंट अपने अंदरूनी फ़ंक्शन में बदलाव नहीं कर पाता.
शैडो पियर्सिंग सिलेक्टर के बजाय, सीएसएस शैडो पार्ट की खास जानकारी को बेहतर बनाया जा रहा है. शैडो पार्ट की मदद से कॉम्पोनेंट बनाने वाले एलिमेंट, नाम वाले एलिमेंट को इस तरह से देख सकते हैं कि एनकैप्सुलेशन सुरक्षित रखा जा सकता है. साथ ही, पेज के लेखकों को एक साथ कई प्रॉपर्टी को स्टाइल देने की सुविधा भी मिलती है.
अगर मेरी साइट ::Shadow और /deep/ का इस्तेमाल करती है, तो मुझे क्या करना चाहिए?
::shadow
और /deep/
सिलेक्टर सिर्फ़ लेगसी शैडो DOM v0 कॉम्पोनेंट पर असर डालते हैं. अगर Shadow DOM v1 का इस्तेमाल किया जा रहा है, तो आपको अपनी साइट पर
कुछ भी बदलने की ज़रूरत नहीं है.
Chrome कैनरी का इस्तेमाल करके, यह पुष्टि की जा सकती है कि आपकी साइट पर इन नए बदलावों का असर न पड़े. अगर आपको कोई समस्या दिखे, तो ::shadow
और /deep/
को इस्तेमाल करने की कोशिश करें और इसे हटा दें. अगर इन सिलेक्टर के इस्तेमाल को हटाना बहुत मुश्किल है, तो नेटिव शैडो डीओएम से शेडी डीओएम पॉलीफ़िल पर स्विच करने के बारे में सोचें. आपको यह बदलाव सिर्फ़ तब करना होगा, जब आपकी साइट
नेटिव शैडो DOM v0 पर आधारित होती है.