2013-11-25 6 views
5

मेरे आवेदन में a एस का विशाल बहुमत एक कस्टम :focus शैली है, और इसलिए उनके पास outline: none है। हालांकि, कुछ मामलों में मेरे पास एक अच्छा कस्टम विकल्प नहीं है, और मैं अपनी कस्टम शैली को ओवरराइड करना चाहता हूं और ब्राउज़र की डिफ़ॉल्ट फोकस शैली का उपयोग करना चाहता हूं।मैं कैसे फोकस के लिए रूपरेखा के प्रारंभिक मूल्य को पुनर्स्थापित कर सकता हूं?

मैं उपयोग करने की कोशिश:

div.where-i-want-this-style a:focus { 
    outline: initial; 
} 

लेकिन यह मुझे एक रूपरेखा हार नहीं मानी। असल में, जब मैं outline: none; को कैस्केड से ऊपर और इस रेखा को टॉगल करने से हटा देता हूं, तो मुझे लगता है कि यह रेखा वास्तव में पर रूपरेखा का कारण बनती है।

मेरे सिद्धांत है कि initial यहाँ वास्तव में, a की प्रारंभिक रूपरेखा का उपयोग करता है एक का नहीं ध्यान केंद्रितa है। वह मान, अनिवार्य रूप से, none है।

क्या कोई मूल्य है जो मैं प्रदान कर सकता हूं जिसका अर्थ है outline: default-focus-outline?

उत्तर

0

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

a:not(.default-outline):focus { 
    outline: none; 
} 

यहाँ एक full example

+0

यह एक अद्भुत समाधान नहीं है (क्योंकि मुझे उस चयनकर्ता को प्रत्येक अपवाद के साथ सिंक में रखना है), लेकिन यह एकमात्र दूरस्थ रूप से क्रॉस-ब्राउज़र समाधान प्रतीत होता है। – Peeja

+0

@Pijja बहुत अधिक <= ie8 को छोड़कर। वास्तव में मैंने सोचा बेहतर है। – qwerty

3
रिकॉर्ड के लिए

, कुछ मैं क्रोम में काम करने के लिए मिल गया है, लेकिन नहीं फ़ायरफ़ॉक्स:

a:focus { 
    outline-style: none; 
} 

div.where-i-want-this-style a:focus { 
    outline-style: auto; 
} 

यह काम करता है क्योंकि outline-style के लिए Chrome की प्रारंभिक मूल्य बिल्कुल स्पष्ट है (auto), और उस भाग को none पर सेट करना डिफ़ॉल्ट रूपरेखा को अक्षम करने के लिए पर्याप्त है।

दुर्भाग्य से, फ़ायरफ़ॉक्स अपनी डिफ़ॉल्ट फोकस शैली को सेट करने के लिए एक बहुत ही अलग विधि का उपयोग करता प्रतीत होता है। अगर मैं फायरबग सही पढ़ रहा हूं, तो यह सीएसएस में स्पष्ट नहीं हो सकता है, जिसका मतलब है कि इसे ओवरराइड करने के बाद इसे वापस पाने का कोई तरीका नहीं है। एक बार मुझे पता चला कि मैंने किसी अन्य ब्राउज़र की जांच करने से परेशान नहीं किया है।

+0

क्या आपको कभी फ़ायरफ़ॉक्स के लिए समाधान मिला है? – Evans

+0

यह थोड़ी देर हो गया है, लेकिन ऐसा लगता है कि स्वीकृत उत्तर एफएफ में काम करता है, हालांकि यह उतना अच्छा नहीं है। मुझे नहीं लगता कि मुझे इस तरह का समाधान मिला जो एफएफ में काम करता था। – Peeja

+4

मुझे नए सीएसएस के साथ तीसरे पक्ष कोड को ओवरराइड करने की आवश्यकता है, लेकिन मैं तीसरे पक्ष कोड को संपादित नहीं कर सकता। इस कारण से उत्तर मेरे लिए काम नहीं करेगा। फिर भी धन्यवाद। – Evans

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

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