2012-01-09 4 views
7

का कोई वंशज नहीं है, मैं इस दस्तावेज़ में छवियों का चयन कैसे करूं जो एक .todeep वर्ग वाले तत्व के अंदर नहीं हैं? दूसरे के नीचे मामले में और तीसरे तत्व का चयन किया जाना चाहिए। मुझे नहीं पता कि छवियां "टोडीप" तत्व के बाद कितनी गहरी होंगी।सीएसएस चयनकर्ता,

<body> 
    <div class="todeep"> 
     <img> 
    </div> 
    <div> 
     <img> 
     <div> 
      <img> 
      <div class="todeep"> 
       <img> 
       <div> 
        <img /> 
       </div> 
      </div> 
     </div> 
    </div> 
</body> 

मैं पहली बार एक सरल उपाय के बारे में सोचा: *: नहीं (.todeep) img, लेकिन यह भी छवियों का चयन करें भी अपने पूर्वजों के बीच एक तत्व गैर "todeep" है कि होगा।

+0

[नकारात्मक CSS चयनकर्ताओं] (के संभावित डुप्लिकेट http://stackoverflow.com/ (उदाहरण के कोड आप के jsfiddle से उधार) प्रश्न/7264 9 3/नकारात्मक-सीएसएस-चयनकर्ता) – Neil

उत्तर

4

आपको सभी छवियों का चयन करना होगा, और फिर .todeep माता-पिता वाले लोगों को अस्वीकार कर देना होगा।

तो बजाय

img { background-color: blue; width: 20px; height: 20px; } 
*:not(.todeep) img { background-color: red; } 

उपयोग

img { background-color: red; width: 20px; height: 20px; } 
.todeep img { background-color: blue; } 

+0

यह केवल 'img' बच्चों के लिए है, किसी भी स्तर पर वंशज नहीं। वंशज चयनकर्ता के साथ बच्चे चयनकर्ता को बदलें। – BoltClock

+0

@ बोल्टक्लॉक: आप सही हैं, ठीक है। – Bergi