2010-04-11 10 views
12

अन्य स्थानों के साथ विस्तृत here के रूप में, एचटीएमएल/सीएसएस वर्ग नाम में एकमात्र मान्य वर्ण ए-जेड, ए-जेड, 0-9, हाइफ़न और अंडरस्कोर है, और पहला अक्षर एक पत्र होना चाहिए। लेकिन व्यावहारिक रूप से, अधिकांश ब्राउज़रों द्वारा वास्तव में कौन से पात्र समर्थित हैं? अधिक विशेष रूप से, मुझे आश्चर्य है कि कौन से ब्राउज़र क्लास नाम में स्लैश (/) को सही ढंग से समझते हैं, और कौन से ब्राउज़र किसी संख्या से शुरू होने वाले वर्ग नामों का समर्थन करते हैं।सीएसएस कक्षा के नामों में कौन से पात्र व्यापक रूप से समर्थित हैं?

मुझे अंतर होने पर मुख्य रूप से एक्सएचटीएमएल की बजाय एचटीएमएल का उत्तर प्राप्त करने में दिलचस्पी है।

धन्यवाद।

+0

tou सिर्फ इतना कहना नहीं था, काम करता है "एक-z, A = Z, 0-9 =, _"? –

+0

वे मान्य वर्ण हैं, लेकिन व्यवहार में अन्य पात्रों को कम से कम कुछ ब्राउज़रों द्वारा भी समर्थित किया जाता है। मुझे आश्चर्य है कि वैध पात्रों (यदि कोई हो) को छोड़कर कौन से पात्रों का उपयोग किया जा सकता है। –

+0

क्यों न सिर्फ नोटपैड खोलें और इसे एक परीक्षण दें ... – bigstylee

उत्तर

10

नोट उस वर्ग के नाम HTML द्वारा परिभाषित किए गए हैं, सीएसएस नहीं। एचटीएमएल 4 saysclass विशेषता cdata-list है, जो अंतरिक्ष से अलग टोकन है। तो एक वर्ग नाम टोकन में व्हाइटस्पेस वर्णों को छोड़कर कोई भी चरित्र हो सकता है।

मुझे आश्चर्य है कि कौन से ब्राउज़र क्लास नाम में स्लैश (/) को सही ढंग से समझते हैं, और कौन से ब्राउज़र क्लास नामों को किसी संख्या से शुरू करते हैं।

सीएसएस क्लास चयनकर्ता में ऐसे नामों का संदर्भ देने के लिए आपको एक भागने का उपयोग करना होगा।

.\31 blah\2F bläh { ... } 

यह सभी मौजूदा ब्राउज़र द्वारा समर्थित है: उदाहरण के लिए .:

<div class="1blah/bläh"> 

के अनुरूप है। यह आईई 5 द्वारा समर्थित नहीं था, लेकिन यह अब चिंता का विषय नहीं है। जो ब्राउज़रों आप अमान्य साथ दूर होने देंगे (यदि आप वर्ण एन्कोडिंग बेमेल के बारे में चिंताओं था, तो आप ä रूप \E4 एन्कोड करने के लिए पसंद कर सकते हैं, लेकिन यह है कि इस तरह के रूप सीएसएस की एक सीमा नहीं है।)

का आग्रह कर रहे हैं चयनकर्ता

.1blah/bläh 

फिर, वास्तव में, कौन वास्तव में परवाह करता है? बस वैध का उपयोग करें।

+0

+1 और मैं तुम्हें अकेला अंतिम पंक्ति के लिए एक दूसरे से देने के लिए प्यार होता! –

+1

मान्य वर्ग नाम * सीएसएस द्वारा परिभाषित * हैं। लेकिन जो लोग HTML में मान्य हैं वे केवल उन लोगों का एक उप-समूह है। ध्यान दें कि सीएसएस एक स्टाइल शीट भाषा है जिसका प्रयोग किसी भी संरचित भाषा के लिए किया जा सकता है न कि केवल HTML। – Gumbo

+2

आप bobince धन्यवाद, यह मेरे लिए समस्या का हल! मैंने मूल रूप से इस सवाल का नाम दिया "HTML वर्ग नामों में कौन से वर्ण व्यापक रूप से समर्थित हैं?" लेकिन किसी ने "एचटीएमएल" को "सीएसएस" में बदल दिया। इस मामले में मेरे लिए महत्वपूर्ण बात यह है कि बिना किसी समस्या के एचटीएमएल को पठनीय बनाना है, इसलिए इससे बहुत मदद मिलती है। इस मामले में IE5 तोड़ना कोई मुद्दा नहीं हो सकता है। धन्यवाद! –

-1

/और अन्य प्रतीकों का उपयोग चयनकर्ता (विशेष रूप से CSS3 में) के रूप में किया जाता है, इसलिए कक्षा के नामों में इसका उपयोग नहीं किया जा सकता है। समर्थित वर्ण वे हैं जिन्हें आपने पहले ही कहा है।

1

http://www.w3.org/TR/2008/REC-CSS2-20080411/syndata.html

आप व्याकरण को देखें, तो आप समझते हैं कि पहचानकर्ता के रूप में

ident  {nmstart}{nmchar}* 
nmstart  [a-zA-Z]|{nonascii}|{escape} 
nmchar  [a-z0-9-]|{nonascii}|{escape} 
nonascii [^\0-\177] 
unicode  \\[0-9a-f]{1,6}[ \n\r\t\f]? 
इसलिए यहाँ

आपका जवाब है परिभाषित कर रहे हैं ..

(इस सीएसएस 2 के लिए है)

+0

यह स्पष्ट नहीं करता कि कौन से वर्ण या अनुक्रम वास्तव में समर्थित हैं। '.foo \ bar','। \/'या'। \ 1234' समर्थित है? – Gumbo

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