2009-05-29 9 views
45

एचटीएमएल विशेषता नाम = मूल्य जोड़े, 'नाम' भाग के लिए वर्णों की अनुमति क्या है? ..... कुछ common attributes को देखते हुए ऐसा लगता है कि केवल अक्षरों (एजे और एजेड) का उपयोग किया जाता है, लेकिन अन्य वर्णों को भी अनुमति दी जा सकती है ... ... शायद अंक (0-9), हाइफ़न (-), और अवधि (।) ... क्या इसके लिए कोई कल्पना है?किसी HTML विशेषता नाम में कौन से वर्णों की अनुमति है?

+0

यह इस सवाल की तरह लगता है कि कोणीय 2: पी –

उत्तर

41

यह निर्भर करता है कि "अनुमति" से आपका क्या मतलब है। प्रत्येक टैग में विशेषता नामों की एक निश्चित सूची होती है जो मान्य हैं, और एचटीएमएल में वे असंवेदनशील हैं। एक महत्वपूर्ण अर्थ में, सही अनुक्रम में केवल इन वर्णों को "अनुमति" है।

इसे देखने का एक और तरीका यह है कि ब्राउज़र कौन सा पात्र वैध विशेषता नाम के रूप में व्यवहार करेगा। यहां सबसे अच्छी सलाह एचटीएमएल 5 के पार्सर स्पेक से आती है, जो यहां पाया जा सकता है: https://html.spec.whatwg.org/multipage/syntax.html#attributes-2

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

+5

मेरे प्रश्न का उत्तर दें। "छोड़कर सभी पात्रों को विशेषता नाम का हिस्सा माना जाएगा" - इस जानकारी को खोजने पर कुडोस, वह भी एक कल्पना में! –

+0

हाँ "इसे दबाएं" नहीं। कुछ सामान्य पात्रों को सीएसएस चयनकर्ताओं से बच जाना होगा, अन्य आपके संपादक के सिंटैक्स हाइलाइटिंग को तोड़ देंगे। – Rolf

+16

संदर्भ के लिए, रेगेक्स '/ ([^ \ t \ n \ f \ />" = = ] +)/' – Nate

4

अनुमत मान w3.org पर सूचीबद्ध हैं। यदि आप एक कस्टम विशेषता जोड़ते हैं, तो आप अब HTML लिख नहीं रहे हैं।

+0

समेकित। तो सभी दस्तावेज उस दस्तावेज़ में मौजूद हैं। धन्यवाद! –

+2

यह पूरी तरह से सच नहीं है क्योंकि आप अपना 'डेटा-' विशेषता निर्दिष्ट कर सकते हैं। – ioquatix

+1

@ioquatix - यह 200 9 में सच था! और मिश्रण में डेटा विशेषताओं के साथ भी, यह कल्पना का एक बहुत ही विशिष्ट रूप है जिसे spec में परिभाषित किया गया है। – Quentin

15

मान लें कि आप एक्सएचटीएमएल के बारे में बात कर रहे हैं, एक्सएमएल नियम लागू होते हैं।

देखें http://www.w3.org/TR/2008/REC-xml-20081126/#NT-Name

नाम और टोकन

[4]  NameStartChar  ::=  ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF] 
[4a] NameChar  ::=  NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040] 
[5]  Name  ::=  NameStartChar (NameChar)* 
[6]  Names  ::=  Name (#x20 Name)* 
[7]  Nmtoken ::=  (NameChar)+ 
[8]  Nmtokens  ::=  Nmtoken (#x20 Nmtoken)* 
+0

imho, यह स्वीकार्य उत्तर – revelt

9

शायद मैं कुछ याद कर रहा हूँ, लेकिन मैं सवाल एक झूठी धारणा पर आधारित है विश्वास करते हैं। एचटीएमएल में, एक निश्चित विनिर्देश के अनुसार गुण सख्ती से defined हैं। यदि आप अपने स्वयं के गुण नाम बनाते हैं, तो आप अब वैध HTML लिख रहे नहीं हैं।

+33

होना चाहिए ... जब तक कि वे कस्टम 'डेटा- * विशेषताएँ न हों। –

+1

@MathiasBynens कूल, मुझे अभी तक उन लोगों के बारे में पता नहीं था! फिर भी, ध्यान रखें कि वे केवल HTML के लिए मान्य हैं, HTML के किसी भी पिछले संस्करण के लिए नहीं। – Daan

+1

आप HTML5 का उपयोग क्यों नहीं करेंगे? –