2014-06-17 8 views
64

मैं जैसे, किसी नियम से कक्षाओं की एक जोड़ी को बाहर करने के :not() संपत्ति का उपयोग करने के कोशिश कर रहा हूँ:कई वर्गों के अंदर: नहीं()

*:not(.class1, class2) { display: none; } 

हालांकि, ऐसा लगता है कि not() संपत्ति का समर्थन नहीं करता this fiddle में शो के रूप में अल्पविराम से अलग वर्गों।

HTML:

<div class='one'> 
    foo 
</div> 
<div class='two'> 
    foo 
</div> 
<div class='three'> 
    foo 
</div> 
<div class='four'> 
    foo 
</div> 

सीएसएस:

div { 
    background-color: #CBA; 
} 

div:not(.one) { 
    background-color: #ABC; 
} 

div:not(.one, .three) { 
    color: #F00; 
} 

पहले और दूसरे नियमों को लागू करने के लिए, लेकिन तीसरे नहीं करता है।

मैं *:not(.class1), *:not(.class2) नहीं कर सकता क्योंकि class2 पर कोई भी तत्व *:not(.class1) और इसके विपरीत चुना जाएगा।

मैं क्योंकि सभी .class1 और .class2 तत्व एक ही मूल प्रदर्शन संपत्ति है

* { display: none;} 
.class1, .class2 { display: inline; } 

नहीं करना चाहते हैं, और मैं उन्हें यह बनाए रखना चाहते।

मैं not() संपत्ति या अन्यथा के साथ नियम से कई कक्षाओं को कैसे बाहर निकाल सकता हूं?

+2

के रूप में आपने देखा, कोमा अभी तक ठीक से लागू नहीं है, इसलिए यह इस तरह से कार्य करें: '*: नहीं (.class1): नहीं (.class2) 'और –

उत्तर

154

आप उपयोग कर सकते हैं:

div:not(.one):not(.three) { 
    color: #F00; 
} 

Fiddle

+0

पर ... मुझे लगा कि मैं कुछ सरल दिख रहा था। बदलने के बाद मैं सही था! धन्यवाद (मैं जल्द ही स्वीकार करने के लिए वापस आऊंगा, मैं कर सकता हूं इससे पहले एक समय सीमा है) – asfallows

+2

मैंने अपनी परियोजना के लिए कोशिश की लेकिन यह नियम को बहुत विशिष्ट बनाता है और यह मेरे अधिकांश नियमों को ओवरराइड करता है। –

+5

'नहीं (.one, .three)' के बारे में कैसे? मेरे लिए काम करता है – Sean

संबंधित मुद्दे