2012-05-07 20 views
34

क्या होवर पर एक चयन सूची विकल्प का डिफ़ॉल्ट पृष्ठभूमि रंग बदलना संभव है?होवर पर चयन सूची विकल्प पृष्ठभूमि रंग बदलें

HTML:

<select id="select"> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
    <option value="3">Three</option> 
</select> 

मैं option:hover { background-color: red; } की कोशिश की है, लेकिन यह किसी काम का नहीं है। क्या किसी को भी पता है की यह कैसे किया जाता है?

+2

कुछ ब्राउज़रों में यह संभव है, दूसरों में यह नहीं है। आमतौर पर फॉर्म तत्व ओएस द्वारा प्रदान किए जाते हैं और ब्राउज़र नहीं, इसलिए सीएसएस हमेशा नहीं होता है (या यहां तक ​​कि 'शायद ही कभी' होता है) लागू होता है। –

+1

किस ब्राउजर में यह संभव है? – vipin8169

उत्तर

9

चुनें/विकल्प तत्व ओएस द्वारा प्रदान किए जाते हैं, HTML नहीं। आप इन तत्वों के लिए शैली को बदल नहीं सकते हैं।

+26

यह एक बहुत पुराना सवाल है। यदि आप इस बिंदु पर एक उत्तर जोड़ने जा रहे हैं, तो कम से कम विस्तृत या संदर्भ के साथ इसका समर्थन करें ... –

32

यह एक इंसेट बॉक्स छाया लागू करके किया जा सकता है। जैसे:

select.decorated option:hover { 
    box-shadow: 0 0 10px 100px #1882A8 inset; 
} 

यहाँ, .decorated एक वर्ग का चयन करें बॉक्स करने के लिए सौंपा है।

आशा है कि आपको बिंदु मिल जाएगा।

select>option:hover 
    { 
     color: #1B517E; 
     cursor: pointer; 
    } 

यह प्रयास करें, सही काम करता है:

+11

+1 शानदार विचार! लेकिन 'विकल्प: चेक किया गया' 'विकल्प से बेहतर काम करता है: होवर'। दोनों केवल फ़ायरफ़ॉक्स पर ही काम करते हैं, हालांकि। – Oriol

+1

क्या क्रोम पर काम करने वाली कोई चीज है? – GumZ

+1

मेरा दृष्टिकोण सिर्फ एक 'अलग' तत्व की तरह व्यवहार करने वाला एक बिल्कुल अलग तत्व बनाने के लिए था। मूल रूप से अंदर एक सूची के साथ एक div। – Diogo

-5

इस तुम क्या जरूरत है, बच्चे Combinator है।

यहाँ संदर्भ है: http://www.w3schools.com/css/css_combinators.asp

+1

फ़ायरफ़ॉक्स में, डिफ़ॉल्ट शैली 'विकल्प है: चेक किया गया {पृष्ठभूमि-रंग: -मोज़-एचटीएमएल-सेलहाइटलाइट! महत्वपूर्ण; रंग: -मोज़-एचटीएमएल-सेलहाइलाइटटेक्स्ट! महत्वपूर्ण; } '। फिर, समस्या यह है कि आप एक आंतरिक महत्वपूर्ण संपत्ति को ओवरराइड नहीं कर सकते हैं, भले ही आप इसका उपयोग करें! महत्वपूर्ण। – Oriol

+0

क्रोम में काम नहीं करता है। – Lev

-2

मुझे पता है यह एक पुराने सवाल है, लेकिन मैं हाल ही में इस जरूरत को भर में आया था और निम्नलिखित समाधान jQuery और सीएसएस का उपयोग कर के साथ आया था:

jQuery('select[name*="lstDestinations"] option').hover(
     function() { 
      jQuery(this).addClass('highlight'); 
     }, function() { 
      jQuery(this).removeClass('highlight'); 
     } 
    ); 

और सीएसएस :

.highlight { 
    background-color:#333; 
    cursor:pointer; 
} 

शायद यह किसी और की सहायता करता है।

+0

यह काम नहीं करता है, बस ऑपरेटिंग सिस्टम द्वारा पृष्ठभूमि-रंग _gets overwritten_। यह सिर्फ 'विकल्प: होवर' का उपयोग करने के बराबर है। हालांकि काफी नहीं: अगर मैं कीबोर्ड का उपयोग करना शुरू करता हूं तो आपकी स्क्रिप्ट टूट जाती है जबकि मेरे पास माउस एक विकल्प पर होवर करता है, इसलिए यह मजबूत नहीं है। – doppelgreener

4

एक इनसेट बॉक्स छाया सीएसएस लागू करने Firefox पर काम करता है:

select option:checked, 
select option:hover { 
    box-shadow: 0 0 10px 100px #000 inset; 
} 

चेक किए गए विकल्प आइटम क्रोम में काम करता है:

select:focus > option:checked { 
    background: #000 !important; 
} 
+2

क्रोम – deemi

0

एफएफ में भी सीएसएस फिल्टर ठीक काम करता है। जैसे रंग घुमाना:

option { 
    filter: hue-rotate(90deg); 
} 

https://jsfiddle.net/w3a740jq/4/

+2

पर काम नहीं कर रहा है यह क्रोम पर काम नहीं कर रहा है – deemi

0

समस्या यह है कि यहां तक ​​कि जावास्क्रिप्ट नहीं देख option तत्व hovered किया जा रहा करता है।

window.onmouseover = function(e) 
{ 
console.log(e.target.nodeName); 
} 

केवल ब्राउज़र विक्रेताओं के लिए एक सदियों इंतजार कर के अलावा इस समस्या को हल करने के लिए (वैसे: यह सिर्फ (कम से कम किसी भी समय जल्द ही) बस सीएसएस का उपयोग करके यह कैसे हल किया जा करने के लिए नहीं जा रहा है पर जोर दिया है बग को ठीक करने के लिए, जो कुछ आप करने की कोशिश कर रहे हैं उससे जूझ रहे हैं) जावास्क्रिप्ट का उपयोग करके ड्रॉप-डाउन मेनू को अपने स्वयं के एचटीएमएल/एक्सएमएल के साथ प्रतिस्थापित करना है। इसमें select तत्व को ul तत्व के साथ input तत्व प्रति li तत्व के उपयोग की संभावना शामिल होगी।

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