2012-05-27 15 views
9

मैंने सभी प्रकार की चीजों की कोशिश की है, लेकिन मुझे लगता है कि मैं बहुत जटिल हो रहा हूं और यहां तक ​​कि मेरे चयनकर्ता के साथ क्रोम लटका पाने में कामयाब रहा हूं। मुझे यकीन है कि थेरेस इसकक्षा के साथ सीएसएस चयनकर्ता लेकिन कक्षा बी

करें classa करने के लिए एक आसान तरीका कर रहा हूँ, लेकिन केवल जब थेरेस कोई classb और यह

<div class="container"> 
    <div class="classa classb"></div> <!-- Dont Select --> 
    <div class="classa"></div> <!-- Select --> 
    <div class="classa"></div> <!-- Dont select last instance --> 
</div> 

उत्तर

12

मेरा मानना ​​है कि आप :not() चयनित (उदाहरण के here)

div.classa:not(.classb):not(:last-child) {}

का उपयोग कर लेकिन, जैसा कि आप जानते हैं CSS3 के साथ ऐसा कर सकते, नहीं कई ब्राउज़र इस का समर्थन करता है, तो जावास्क्रिप्ट एक आसान तरीका हो सकता है ..

+0

इसके अलावा, यदि आप अंतिम बच्चे नहीं हैं तो आप अंतिम '.classa' को बाहर करने में सक्षम नहीं होंगे। Http://stackoverflow.com/questions/10230416/is-it-possible-using-current-browsers-to-use-pseudo-classes-to-detect-first-and/10230466#10230466 – BoltClock

+0

हां यह एक समस्या है Ive परीक्षण हो रहा है – Akshat

0

के अंतिम उदाहरण CSS3 pseudo classes के साथ उपेक्षा:

.classa:not(:last-child):not(.classb) { 
    // some rules... 
} 
2
.classa:not(.classb):not(:last-child) { 
    /* rules */ 
} 

फ़ायरफ़ॉक्स 12, क्रोम 1 9, सफारी 5 और ओपेरा 10 पर परीक्षण किया गया। दुर्भाग्यवश यह काम नहीं करता है (... अनुमान लगाओ?) आईई।

+0

क्योंकि आपने अपनी आईई को अपग्रेड नहीं किया है। – BoltClock

+0

मैंने आईई 9 पर परीक्षण किया - काम नहीं करता है। यहां तक ​​कि अगर यह काम करता है, तो भी अधिकांश लोग पुराने संस्करणों का उपयोग करते हैं ... – Simone

+0

सुनिश्चित करें कि आप मानकों मोड में परीक्षण कर रहे हैं। आईई 9 इन चयनकर्ताओं को पूरी तरह से समर्थन करता है, लेकिन केवल मानक मोड में। – BoltClock

1

प्रयास करें:

.classa:not(.classb):first-child { 
    background: red; 
} 

यह हालांकि आईई 7 या 8 में काम नहीं करेगा।

+0

यह गलत है, क्योंकि पहला बच्चा 'classa.classb' है। – BoltClock

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