CSS3 चयनकर्ता प्रश्न सभी के लिए लेकिन पहले चयन करें


92

निम्नलिखित मार्कअप के साथ मैं चाहता हूं कि एक सीएसएस चयनकर्ता सभी का चयन करें लेकिन प्रत्येक विकल्प div के भीतर पहला चयन मेनू - जिनमें से कई हो सकते हैं:

<div class="options">
    <div class="opt1">
        <select title="Please choose Warranty">
            <option value="">Select Waranty</option>
            <option value="1">1 year guarantee</option>
            <option value="2">3 year guarantee</option>
        </select>
    </div>
    <div class="opt2">
        <select title="Please choose Color">
            <option value="">Select Color</option>
            <option value="1">Red</option>
            <option value="2">Blue</option>
        </select>
    </div>
    <div class="opt3">
        <select title="Please choose Size">
            <option value="">Select Size</option>
            <option value="1">Small</option>
            <option value="2">Big</option>
        </select>
    </div>
</div>

मैं इसे प्रोटोटाइप के भीतर उपयोग कर रहा हूं जिसमें लगभग पूर्ण css3 चयनकर्ता समर्थन है जो ब्राउज़र समर्थन से चिंतित नहीं है।

प्रारंभिक चयनकर्ता कुछ इस तरह होगा:

div.options div select

मैं पर कुछ रूपों की कोशिश की है nth-childऔर :not(:first-child)लेकिन यह काम करने के लिए नहीं कर पा रहे।

जवाबों:



48

आप चयन करने का विकल्प की जरूरत divके बजाय एस selectएस का उपयोग करते समय :not(:first-child), क्योंकि हर, selectअपनी मूल की पहली (और केवल) बच्चा है div:

div.options > div:not(:first-child) > select

इस तरह से 2 का एक प्रारंभिक ऑफसेट के साथ :not(:first-child)उपयोग करने के लिए एक विकल्प है :nth-child():

div.options > div:nth-child(n + 2) > select

एक अन्य विकल्प सामान्य सहोदर संयोजक के साथ है ~(जो IE7 + द्वारा समर्थित है):

div.options > div ~ div > select

अतिरिक्त जानकारी के लिए धन्यवाद, अन्य उत्तर को स्वीकार किया क्योंकि यह भी सही था और पहले के माध्यम से आया था।
लूटा

1
जैसे ही आप पुराने IE के बारे में चिंतित होते हैं, मैंने एक तीसरा समाधान जोड़ा है।
BoltClock

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.