2009-10-07 15 views
211

मैं एक सीएसएस फ़ाइल पर काम कर रहा हूं और स्टाइल टेक्स्ट इनपुट बॉक्स की आवश्यकता ढूंढता हूं, हालांकि, मैं समस्याओं में भाग रहा हूं। मैं एक साधारण घोषणा कि इन सभी तत्वों से मेल खाता है की जरूरत है:सीएसएस चयनकर्ता बिना किसी तत्व के मिलान करने के लिए x

<input /> 
<input type='text' /> 
<input type='password' /> 

... लेकिन इन लोगों से मेल नहीं खाता:

<input type='submit' /> 
<input type='button' /> 
<input type='image' /> 
<input type='file' /> 
<input type='checkbox' /> 
<input type='radio' /> 
<input type='reset' /> 

यहाँ मैं करना चाहते हैं क्या:

input[!type], input[type='text'], input[type='password'] { 
    /* styles here */ 
} 

उपरोक्त सीएसएस में, ध्यान दें कि पहला चयनकर्ता input[!type] है। मेरा मतलब यह है कि मैं उन सभी इनपुट बॉक्स का चयन करना चाहता हूं जहां टाइप विशेषता निर्दिष्ट नहीं है (क्योंकि यह टेक्स्ट पर डिफ़ॉल्ट है लेकिन input[type='text'] इससे मेल नहीं खाता है)। दुर्भाग्य से, CSS3 spec में ऐसा कोई चयनकर्ता नहीं है जिसे मैं पा सकता हूं।

क्या कोई इसे पूरा करने के तरीके से जानता है?

उत्तर

345

: नहीं चयनकर्ता

input:not([type]), input[type='text'], input[type='password'] { 
    /* style here */ 
} 

इंटरनेट एक्सप्लोरर 9 में Support: और उच्च

+11

यह IE6, IE7 पर समर्थित नहीं है और IE8 –

+130

@Tim में, फिर, क्या समर्थित _is_ शायद नहीं: selectivizr का उपयोग कर Oldie में चयनकर्ता नहीं आईई 6, 7, और 8 में ... – priestc

+1

@ एनबीवी 4, सच डेटा, लेकिन मेरा जवाब देखें। –

26

एक और अधिक पार ब्राउज़र समाधान आप शैली सकता सभी के लिए जिस तरह से आप गैर टाइप किया चाहते आदान, पाठ, और पासवर्ड फिर एक और शैली रेडियो, चेकबॉक्स, आदि के लिए शैली को ओवरराइड करता है

input { border:solid 1px red; } 

input[type=radio], 
input[type=checkbox], 
input[type=submit], 
input[type=reset], 
input[type=file] 
     { border:none; } 

- या -

अपने कोड है कि गैर टाइप किया आदानों पैदा कर रहा है के किसी भी भाग उन्हें .no-type या बस नहीं उत्पादन बिल्कुल की तरह एक वर्ग दे सकता है? इसके अतिरिक्त इस प्रकार का चयन jQuery के साथ किया जा सकता है।

+0

चालाक समाधान। नए एचटीएमएल 5 प्रकारों (जैसे "ईमेल") के लिए अद्यतन करना होगा – TimoSolo

+5

यह वही नहीं है; उदाहरण के लिए यदि आप सीमा को हटाते हैं तो ओपेरा इनपुट से इसकी डिफ़ॉल्ट शैलियों को हटा देगा। – feeela

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