2012-11-22 12 views
5

मैं मल्टीसेलेक्ट ड्रॉपडाउन बॉक्स में चयनित आइटमों में पीला रंग देना चाहता हूं। डिफ़ॉल्ट रूप से, चुनने के बाद इसमें भूरे रंग की पृष्ठभूमि है, मैं इसे HTML, CSS में करना चाहता हूं।मल्टीइलेक्ट ड्रॉपडाउन बॉक्स में चयनित वस्तुओं के पृष्ठभूमि रंग को कैसे बदला जाए?

क्या कोई इस में सहायता कर सकता है?

उत्तर

1

हम DOMS चयन करने के लिए जे एस का उपयोग कर सकते हैं।

$('select').change(function() { 
    $('option').css('background', 'none'); 
    $('option:selected').css('backgroundColor', 'red'); 
}).change() 

<select> 
    <option>1111111</option> 
    <option>222222222</option> 
    <option>33333333</option> 
    <option>44444444</option> 
</select> 

डेमो: http://jsfiddle.net/TxbVt/1/

+1

एकाधिक चयनों के साथ काम नहीं करता है :( – t1gor

+0

यह मेरे लिए बहु-चयन के लिए भी काम नहीं करता है। –

-3

आप नहीं कर सकते। <option> तत्व सीएसएस स्टाइल स्वीकार नहीं करता है।

आप जावास्क्रिप्ट-आधारित विकल्प का उपयोग कर सकते हैं। कई <select> प्रतिस्थापन स्क्रिप्ट उपलब्ध हैं।

+1

सच नहीं 100% मुझे डर है ... आधुनिक ब्राउज़र इसे अनुमति देते हैं। इसे फ़ायरफ़ॉक्स में आज़माएं;) हालांकि यह क्रॉस ब्राउज़र विश्वसनीय नहीं है। – Pebbl

+0

धन्यवाद @Diodeus, क्या आप जावास्क्रिप्ट के साथ मुझे नीचे शैली के लिए हेल कर सकते हैं। ** चयनित {/ * टेक्स्ट रंग और फ़ॉन्ट वजन, लाल और बोल्ड */ रंग: नीला; फ़ॉन्ट-वेट: बोल्ड; } ** – user9371102

+0

जावास्क्रिप्ट इसे मानक चयन आइटम के साथ नहीं कर सकता है। देखें: http://www.jankoatwarpspeed.com/post/2009/07/28/reinventing-drop-down-with-css-jquery.aspx –

0

निम्नलिखित (ब्राउज़रों कि स्टाइल विकल्प टैग की अनुमति देने के लिए) काम करना चाहिए, लेकिन डिफ़ॉल्ट चयन स्टाइल ज्यादातर मामलों में पार कर जाएगी। आप फिर भी इसे निष्क्रिय करने के लिए एक रास्ता खोजने के लिए सक्षम हो सकता है:

सीएसएस

select option.selected { 
    font-weight: bold; 
    color: red; 
} 

जावास्क्रिप्ट

function highlight_options(field){ 
    var i,c; 
    for(i in field.options){ 
    (c=field.options[i]).className=c.selected?'selected':''; 
    } 
} 

मार्कअप

<select onchange="highlight_options(this)" multiple="multiple"> 
    <option>One</option> 
    <option>Two</option> 
    <option>Three</option> 
</select> 
+0

धन्यवाद @pebbl, सिस्टम रंग ओवरराइडिंग है, http: // jsfiddle।नेट/rZuYz/ – user9371102

+0

दुर्भाग्य से मैंने कहा कि VicKyAmr हाँ। इसे देखकर आप इसे हटा नहीं सकते ... कम से कम जहां तक ​​मुझे मिला है। सब क्योंकि हाइलाइट विकल्प तत्व की संपत्ति नहीं है, यह शीर्ष पर एक परत है। हालांकि, आप अभी भी शैलियों को प्रभावित कर सकते हैं जो ओवरराइड नहीं हैं ... जैसे सीमा और पैडिंग। और आप शैलियों और पृष्ठभूमि छवियों को गैर-चयनित विकल्पों में भी लागू कर सकते हैं और साथ ही उन्हें अधिक आकर्षक बना सकते हैं। – Pebbl

+0

यह एफएफ में काम नहीं करता है :( – t1gor

-1

शुद्ध सीएसएस यहाँ मदद मिलेगी:

option:checked 
2
<style> 
    .select2-container--default .select2-results__option[aria-selected=true] { 
     background-color: inherit; 
     color: lightgray; 
    } 
</style> 

ब्लॉक के अंदर अपनी शैली जोड़ें।

3

हम नीचे दिए गए सीएसएस की सहायता से बस कर सकते हैं।

select option:checked{ background: #1aab8e -webkit-linear-gradient(bottom, #1aab8e 0%, #1aab8e 100%); }

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