2011-10-23 15 views
17

निम्नलिखित एचटीएमएल पर विचार करें:सीएसएस कोई भाई चयनकर्ता

<div> 
    <div class="iwant" /> 
    <div class="idontwant" /> 
</div> 
<div> 
    <div class="iwant" /> 
</div> 

मैं एक चयनकर्ता में दिलचस्पी रखता हूँ कि सभी iwant कि वर्ग के साथ भाई है नहीं है का चयन करेंगे (सामग्री क्रॉल तो मैं एचटीएमएल संशोधित नहीं कर सकते के लिए) idontwant

उत्तर

34

कक्षा द्वारा तत्वों (या नहीं) से मेल खाने के लिए कोई भाई चयनकर्ता नहीं है।

निकटतम चयनकर्ता मैं के बारे में सोच सकते हैं

.iwant:only-child 

है लेकिन इस चयनकर्ता मतलब यह है कि माता-पिता div के बच्चों के रूप में है कि div class="iwant" के अलावा किसी भी अन्य तत्वों नहीं किया जा सकता, प्रकार या वर्ग की परवाह किए बिना। हालांकि यह आपके एचटीएमएल की संरचना के आधार पर आपकी ज़रूरत को पूरा कर सकता है, इसलिए यह एक कोशिश के लायक है। यदि कक्षा के नाम आपके लिए एक समस्या है, तो संभवतः वहां कोई समाधान नहीं है, क्योंकि :only-of-class सीएसएस में छद्म-वर्ग नहीं है जो कक्षा द्वारा फ़िल्टर करता है और बाकी को अनदेखा करता है।

+0

यह एक समाधान हो सकता है, लेकिन मैं और अधिक सामान्य क्योंकि वहाँ अतिरिक्त 'div's हो सकता है कुछ पसंद करते हैं। हालांकि अच्छी सोच है। –

1

कोई नकारात्मक-भाई सीएसएस चयनकर्ता नहीं है। नई शैली स्थापित करने के लिए भाई चयनकर्ता का उपयोग करें, तो .idontwant पर शैलियों रीसेट:

div.iwant { 
    /*Set CSS here*/ 
    display: inline; 
} 
div.iwant ~ div.idontwant { 
    /*Reset CSS*/ 
    display: block /* Default of DIV is block*/ 
} 
+0

यह अनावश्यक है क्योंकि प्रत्येक वर्ग पारस्परिक रूप से अनन्य है। – BoltClock

+0

@ बोल्टक्लॉक इसका मतलब क्या है? 'Div.iwant ~ div.idontwant' चयनकर्ता 'div.iwant' से अधिक विशिष्ट है। –

+2

मैं शैलियों को सेट नहीं कर रहा हूं, मैं उन तत्वों को क्रॉलर के लिए प्राप्त करना चाहता हूं और मैं इसे एक प्रश्न में करना पसंद करूंगा। –

2

एक विशिष्ट भाई आइटम बिना किसी आइटम को लक्षित करने के लिए कोई अच्छा तरीका नहीं है। लेकिन आप उन वस्तुओं को लक्षित करने के लिए .iwant:last-child का उपयोग कर सकते हैं जिनके बाद में भाई नहीं है।

उदाहरण: http://codepen.io/martinkrulltott/pen/YyGgde

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