मेरा सुझाव है कि मेरा समाधान है कि आप इस GitHub रेपो में पा सकते हैं ।
यह IE8 और IE9 के लिए भी काम करता है जो एक कस्टम फॉन्ट से होता है जो आइकन फॉन्ट से आता है।
कस्टम क्रॉस ब्राउज़र ड्रॉप-डाउन की कार्रवाई के उदाहरण : क्रॉस-ब्राउज़र सुविधा को देखने के लिए अपने सभी ब्राउज़रों के साथ उन्हें जांचें।
वैसे भी, चलो आधुनिक ब्राउज़रों के साथ शुरू करते हैं और फिर हम पुराने लोगों के लिए समाधान देखेंगे।
क्रोम, फ़ायरफ़ॉक्स, ओपेरा, इंटरनेट एक्सप्लोरर 10+ के लिए ड्रॉप-डाउन एरो
इन ब्राउज़र के लिए, एक ही तीर के लिए ड्रॉप-डाउन के लिए समान पृष्ठभूमि छवि सेट करना आसान है ।
ऐसा करने के लिए, आपको select
टैग के लिए ब्राउज़र की डिफ़ॉल्ट शैली को रीसेट करना होगा और नए पृष्ठभूमि नियमों को सेट करना होगा (जैसे पहले सुझाव दिया गया है)।
select {
/* you should keep these firsts rules in place to maintain cross-browser behaviour */
-webkit-appearance: none;
-moz-appearance: none;
-o-appearance: none;
appearance: none;
background-image: url('<custom_arrow_image_url_here>');
background-position: 98% center;
background-repeat: no-repeat;
outline: none;
...
}
appearance
नियम ब्राउज़रों डिफ़ॉल्ट लोगों पुनर्स्थापित करने के लिए कोई नहीं पर सेट कर रहे हैं, अगर आप प्रत्येक तीर के लिए एक ही पहलू करना चाहते हैं, तो आप उन्हें जगह में रखना चाहिए।
background
उदाहरण में नियम एसवीजी इनलाइन चित्र है कि विभिन्न तीर प्रतिनिधित्व के साथ स्थापित कर रहे हैं। वे कुछ मार्जिन को दाईं सीमा पर रखने के लिए बाएं से 98% तैनात हैं (आप अपनी इच्छानुसार स्थिति को आसानी से संशोधित कर सकते हैं)।
सही क्रॉस-ब्राउज़र व्यवहार को बनाए रखने के लिए, केवल दूसरा नियम जिसे छोड़ना पड़ता है, वह है outline
। यह नियम तत्व को क्लिक करने पर (कुछ ब्राउज़रों में) दिखाई देने वाली डिफ़ॉल्ट सीमा को रीसेट करता है। जरूरत पड़ने पर अन्य सभी नियमों को आसानी से संशोधित किया जा सकता है।
आइकन फॉन्ट का उपयोग करके इंटरनेट एक्सप्लोरर 8 (IE8) और इंटरनेट एक्सप्लोरर 9 (IE9) के लिए ड्रॉप-डाउन एरो
यह कठिन हिस्सा है ... या शायद नहीं।
इन ब्राउज़रों के लिए डिफ़ॉल्ट तीर को छिपाने के लिए कोई मानक नियम नहीं है (जैसे select::-ms-expand
IE10 + के लिए)। समाधान ड्रॉप-डाउन के उस भाग को छिपाने के लिए है जिसमें डिफ़ॉल्ट तीर है और तीर आइकन फ़ॉन्ट (या एक एसवीजी, यदि आप चाहें तो) सम्मिलित करें जो अन्य ब्राउज़रों में उपयोग किए जाने वाले एसवीजी के समान है ( select
अधिक के लिए CSS नियम देखें) इनलाइन एसवीजी का उपयोग करने के बारे में विवरण)।
बहुत पहला कदम एक वर्ग सेट करना है जो ब्राउज़र को पहचान सकता है: यही कारण है कि मैंने कोड की शुरुआत में सशर्त IE आईएफ का उपयोग किया है। इन आईएफ का इस्तेमाल html
पुराने IE ब्राउज़र को पहचानने के लिए टैग के लिए विशिष्ट कक्षाएं संलग्न करने के लिए किया जाता है।
उसके बाद, select
HTML में प्रत्येक को एक div
(या जो भी टैग किसी तत्व को लपेट सकता है) द्वारा लपेटा जाना है । इस आवरण में केवल उस वर्ग को जोड़ें जिसमें आइकन फ़ॉन्ट है।
<div class="selectTagWrapper prefix-icon-arrow-down-fill">
...
</div>
आसान शब्दों में, select
टैग को अनुकरण करने के लिए इस आवरण का उपयोग किया जाता है ।
ड्रॉप-डाउन की तरह काम करने के लिए, रैपर के पास एक बॉर्डर होना चाहिए, क्योंकि हम उस एक को छिपाते हैं जो बाहर से आता है select
।
ध्यान दें कि हम select
सीमा का उपयोग नहीं कर सकते हैं क्योंकि हमें डिफ़ॉल्ट तीर को छिपाने के लिए इसे आवरण से 25% अधिक लंबा करना होगा। नतीजतन, इसकी सही सीमा दिखाई नहीं देनी चाहिए क्योंकि हम इस overflow: hidden
नियम को select
खुद पर लागू नियम से 25% अधिक छिपाते हैं ।
कस्टम तीर आइकन-फ़ॉन्ट को छद्म वर्ग में रखा गया है :before
जहां नियम content
में तीर के लिए संदर्भ होता है (इस मामले में यह एक सही कोष्ठक है)।
हम इस तीर को यथासंभव रखने के लिए एक पूर्ण स्थिति में रखते हैं (यदि आप विभिन्न आइकन फोंट का उपयोग करते हैं, तो याद रखें कि उन्हें शीर्ष और बाएं मानों और फ़ॉन्ट आकार बदलकर उन्हें व्यवस्थित रूप से समायोजित करना है)।
.ie8 .prefix-icon-arrow-down-fill:before,
.ie9 .prefix-icon-arrow-down-fill:before {
content: ")";
position: absolute;
top: 43%;
left: 93%;
font-size: 6px;
...
}
आप पृष्ठभूमि तीर या आइकन फ़ॉन्ट तीर को आसानी से बना और स्थानापन्न कर सकते हैं, हर एक के साथ जो आप बस इसे background-image
नियम में बदलना चाहते हैं या अपने आप से एक नया आइकन फ़ॉन्ट फ़ाइल बनाना चाहते हैं।