अद्यतन २ ::slotted
::slotted
अब सभी नए ब्राउज़रों द्वारा समर्थित है और इसके साथ उपयोग किया जा सकता है ViewEncapsulation.ShadowDom
https://developer.mozilla.org/en-US/docs/Web/CSS/::slotted
अद्यतन 1 :: एनजी-डीप
/deep/
को हटाकर उसकी जगह ले लिया गया ::ng-deep
।
::ng-deep
पहले से ही पदावनत चिह्नित है, लेकिन अभी तक कोई प्रतिस्थापन उपलब्ध नहीं है।
जब ViewEncapsulation.Native
सभी ब्राउज़रों द्वारा सही तरीके से समर्थन किया जाता है और स्टाइलिंग अडोवर शैडो डोम सीमाओं का समर्थन करता है, ::ng-deep
तो संभवतः बंद कर दिया जाएगा।
मूल
कोणीय HTML के सभी प्रकार के सीएसएस वर्गों को जोड़ता है जो कि डोम में जोड़ता है शैडो डोम सीएसएस एन्कैप्सुलेशन को घटकों के अंदर और बाहर रक्तस्राव की शैलियों को रोकने के लिए। कोणीय भी आप इन जोड़ा वर्गों से मेल करने के लिए जोड़ने सीएसएस को फिर से लिखता है। HTML के लिए [innerHTML]
इन वर्गों का उपयोग करके जोड़ा नहीं गया है और फिर से लिखा सीएसएस मेल नहीं खाता है।
वर्कअराउंड के रूप में प्रयास करें
- सीएसएस घटक के लिए जोड़ा गया
/* :host /deep/ mySelector { */
:host ::ng-deep mySelector {
background-color: blue;
}
- सीएसएस के लिए जोड़ा गया
index.html
/* body /deep/ mySelector { */
body ::ng-deep mySelector {
background-color: green;
}
>>>
(और समतुल्य /deep/
लेकिन /deep/
SASS के साथ बेहतर काम करता है) और ::shadow
2.0.0-beta.10 में जोड़ा गया था। वे छाया डोम सीएसएस कॉम्बिनेटर (जो पदावनत हैं) के समान हैं और केवल वही काम करते हैं encapsulation: ViewEncapsulation.Emulated
जो Angular2 में डिफ़ॉल्ट है। वे शायद साथ काम भी करते ViewEncapsulation.None
हैं लेकिन तब उन्हें अनदेखा कर दिया जाता है क्योंकि वे आवश्यक नहीं हैं। ये कॉम्बिनेटर केवल एक मध्यवर्ती समाधान हैं जब तक क्रॉस-घटक स्टाइल के लिए अधिक उन्नत सुविधाओं का समर्थन नहीं किया जाता है।
एक और दृष्टिकोण का उपयोग करना है
@Component({
...
encapsulation: ViewEncapsulation.None,
})
आपके सीएसएस को ब्लॉक करने वाले सभी घटकों के लिए (यह निर्भर करता है कि आप सीएसएस कहां से जोड़ते हैं और एचटीएमएल यह है कि आप किस शैली को चाहते हैं - आपके आवेदन में सभी घटक हो सकते हैं)
अपडेट करें
उदाहरण प्लंकर
index.html
?