2012-05-23 18 views
6

मैं सिर्फ ब्राउज़र इसका समर्थन के लिए इनपुट प्लेसहोल्डर शैली निम्नलिखित नियम लिखने का प्रयास किया:मैं अलग-अलग ब्राउज़रों के लिए ब्राउज़र-विशिष्ट सीएसएस-चयनकर्ता समूह क्यों नहीं बना सकता?

#main input::-webkit-input-placeholder, 
#main input:-moz-placeholder 
{ 
    color: #888; 
    font-style: italic; 
} 

समस्या यह है कि नियम लागू नहीं किया जाता है। हालांकि, अगर मैं इसे तोड़ने के इस तरह के बजाय यह सिर्फ ठीक काम करता है:

#main input::-webkit-input-placeholder 
{ 
    color: #888; 
    font-style: italic; 
} 
#main input:-moz-placeholder 
{ 
    color: #888; 
    font-style: italic; 
} 

मैं क्यों नहीं समूह ब्राउज़र-विशिष्ट चयनकर्ताओं, या वहाँ एक और तरीका यह करने के लिए है सकते हैं? एक ही तत्व के लिए दो बार समान गुण दोहराने का अधिकार नहीं है।

अद्यतन:

बस करते हुए कहा कि यह नहीं किया जा सकता है, लेकिन अब तक क्यों पर कोई जानकारी नहीं this resource पाया। ऐसा लगता है कि ब्राउज़र को पूरे नियम को त्यागना चाहिए क्योंकि यह चयनकर्ताओं में से एक को पहचान नहीं पाता है।

उत्तर

6

यदि चयनकर्ताओं के समूह में एक चयनकर्ता अमान्य है, तो ब्राउज़र को पूरे नियम को अमान्य मानना ​​चाहिए। या कम से कम says the W3C

मुझे यकीन नहीं है कि यह व्यवहार क्यों अनिवार्य है, लेकिन एक धक्का पर, मुझे लगता है कि ऐसा इसलिए है क्योंकि एक अवैध चयनकर्ता सामान्य सीएसएस वाक्यविन्यास तोड़ सकता है, जिससे ब्राउज़र के लिए यह असंभव हो जाता है कि अमान्य चयनकर्ता समाप्त होता है और वैध तत्व शुरू होते हैं।

+0

स्रोत के लिए धन्यवाद, जो बताता है कि यह क्यों अमान्य है! मुझे लगता है कि पूरे नियम को नजरअंदाज करना समझ में आता है, जब आप इसे इस तरह रखते हैं। यह एक कोने-केस का थोड़ा सा है, इसलिए मुझे लगता है कि यह ठीक है, लेकिन यह थोड़ा गन्दा लगता है कि आपको अपना कोड दोहराना है। –

+0

@ बोल्टक्लॉक अतिरिक्त पढ़ने के लिए धन्यवाद, दिलचस्प बात यह है कि मैंने क्रोम में इस विशेष कोड को डीबग किया, और इसने मेरे पहले उदाहरण में नियम लागू नहीं किया। क्या वेबकिट ने इस नियम का पालन करना शुरू कर दिया है? –

+0

@ क्रिस्टोफर एलियासन: हम्म, यह पता चला है [वेबकिट का व्यवहार] (http://stackoverflow.com/questions/8317954/ignoring-webkit-specific-css-selector-in-firefox) सभी के बाद जानबूझकर नहीं हो सकता है। मैंने अभी पाया है कि यह आपके मामले में काम नहीं करता है क्योंकि वेबकिट केवल चुनिंदा छद्म-तत्वों (जैसे ':: - moz-select') को अनदेखा करता है, लेकिन पूर्ववर्ती छद्म-वर्ग नहीं (जैसे ': -moz-placeholder' उदाहरण), और [क्रोम देवताओं और सीएसएसडब्ल्यूजी सदस्यों में से एक ने मुझे अभी बताया कि यह जानबूझकर प्रतीत नहीं होता है] (https://twitter.com/tabatkins/status/285038809375182848)। – BoltClock

0

अधिकतर, कुछ ब्राउज़र संपूर्ण परिभाषा को त्याग देते हैं क्योंकि वे चयनकर्ता को वैध नहीं मानते हैं।

0

यदि आप जावास्क्रिप्ट का उपयोग करने के इच्छुक हैं, तो -फ्रिक्स-मुक्त स्क्रिप्ट देखें। यह आपको इस तरह के सीएसएस गुणों के लिए विक्रेता विशिष्ट उपसर्ग (उदा। -webkit- या -moz-) को छोड़ने की अनुमति देता है।

+0

पहले इसका उपयोग नहीं किया है, क्या आप वाकई ब्राउज़र-विशिष्ट चयनकर्ताओं के लिए भी काम करते हैं? प्रलेखन केवल सीएसएस-गुणों का उल्लेख करता है जो मैं देख सकता हूं। –

+0

आह - आप वहां पर हो सकते हैं। अच्छी तरह से देखा गया। – Grezzo